Example usage for java.awt.event InputEvent ALT_MASK

List of usage examples for java.awt.event InputEvent ALT_MASK

Introduction

In this page you can find the example usage for java.awt.event InputEvent ALT_MASK.

Prototype

int ALT_MASK

To view the source code for java.awt.event InputEvent ALT_MASK.

Click Source Link

Document

The Alt key modifier constant.

Usage

From source file:org.gumtree.vis.awt.JChartPanel.java

@Override
public void mouseClicked(MouseEvent e) {
    if ((e.getModifiers() & InputEvent.ALT_MASK) != 0) {
        double xNew = ChartMaskingUtilities.translateScreenX(e.getX(), getScreenDataArea(), getChart());
        double yNew = ChartMaskingUtilities.translateScreenY(e.getY(), getScreenDataArea(), getChart(), 0);
        addMarker(xNew, yNew, null);//from  ww w.  j  a v a2s .c o m
    } else if (isTextInputEnabled) {
        if (!textInputFlag) {
            boolean newTextEnabled = selectedTextWrapper == null;
            if (selectedTextWrapper != null) {
                Point2D screenXY = ChartMaskingUtilities.translateChartPoint(
                        new Point2D.Double(selectedTextWrapper.getMinX(), selectedTextWrapper.getMinY()),
                        getScreenDataArea(), getChart());
                Rectangle2D screenRect = new Rectangle2D.Double(screenXY.getX(), screenXY.getY() - 15,
                        selectedTextWrapper.getWidth(), selectedTextWrapper.getHeight());
                if (screenRect.contains(e.getX(), e.getY())) {
                    Point2D point = e.getPoint();
                    String inputText = textContentMap.get(selectedTextWrapper);
                    if (inputText == null) {
                        inputText = "";
                    }
                    String[] lines = inputText.split("\n", 100);
                    int cursorX = 0;
                    int charCount = 0;
                    int maxWidth = 0;
                    int pickX = -1;
                    FontMetrics fm = getGraphics().getFontMetrics();
                    for (int i = 0; i < lines.length; i++) {
                        int lineWidth = fm.stringWidth(lines[i]);
                        if (lineWidth > maxWidth) {
                            maxWidth = lineWidth;
                        }
                    }
                    if (maxWidth < 100) {
                        maxWidth = 100;
                    }
                    Point2D screenPoint = ChartMaskingUtilities.translateChartPoint(
                            new Point2D.Double(selectedTextWrapper.getX(), selectedTextWrapper.getY()),
                            getScreenDataArea(), getChart());
                    if (point.getX() <= screenPoint.getX() + 11 + maxWidth
                            && point.getY() <= screenPoint.getY() + lines.length * 15 - 15) {
                        textInputPoint = screenPoint;
                        textInputContent = inputText;
                        textInputFlag = true;
                        textContentMap.remove(selectedTextWrapper);
                        selectedTextWrapper = null;
                        textInputCursorIndex = 0;
                        for (int i = 0; i < lines.length; i++) {
                            if (point.getY() > screenPoint.getY() + i * 15 - 15
                                    && point.getY() <= screenPoint.getY() + i * 15) {
                                cursorX = fm.stringWidth(lines[i]);
                                if (point.getX() >= screenPoint.getX()
                                        && point.getX() <= screenPoint.getX() + 3 + cursorX) {
                                    if (point.getX() >= screenPoint.getX()
                                            && point.getX() < screenPoint.getX() + 3) {
                                        pickX = 0;
                                    }
                                    double lastEnd = screenPoint.getX() + 3;
                                    for (int j = 0; j < lines[i].length(); j++) {
                                        int size = fm.stringWidth(lines[i].substring(0, j + 1));
                                        double newEnd = screenPoint.getX() + 3 + size;
                                        if (point.getX() >= lastEnd
                                                && point.getX() < lastEnd + (newEnd - lastEnd) / 2) {
                                            pickX = j;
                                        } else if (point.getX() >= lastEnd + (newEnd - lastEnd) / 2
                                                && point.getX() < newEnd) {
                                            pickX = j + 1;
                                        }
                                        lastEnd = newEnd;
                                    }
                                    if (pickX >= 0) {
                                        textInputCursorIndex = charCount + pickX;
                                    }
                                } else {
                                    textInputCursorIndex = charCount + lines[i].length();
                                }
                                break;
                            }
                            charCount += lines[i].length() + 1;
                        }
                    }
                }
            }
            selectText(e.getX(), e.getY());
            if (selectedTextWrapper == null && !textInputFlag && newTextEnabled
                    && (e.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) {
                textInputFlag = true;
                textInputPoint = e.getPoint();
            }
        } else {
            Point2D point = e.getPoint();
            boolean finishInput = false;
            //            if (point.getX() < textInputPoint.getX() || point.getY() < textInputPoint.getY() - 15) {
            //               finishInput = true;
            //            } else {
            String inputText = textInputContent;
            if (inputText == null) {
                inputText = "";
            }
            String[] lines = inputText.split("\n", 100);
            int cursorX = 0;
            int charCount = 0;
            int maxWidth = 0;
            int pickX = -1;
            FontMetrics fm = getGraphics().getFontMetrics();
            for (int i = 0; i < lines.length; i++) {
                int lineWidth = fm.stringWidth(lines[i]);
                if (lineWidth > maxWidth) {
                    maxWidth = lineWidth;
                }
            }
            if (maxWidth < 100) {
                maxWidth = 100;
            }
            if (point.getX() > textInputPoint.getX() + 11 + maxWidth
                    || point.getY() > textInputPoint.getY() + lines.length * 15 - 15
                    || point.getX() < textInputPoint.getX() || point.getY() < textInputPoint.getY() - 15) {
                finishInput = true;
            } else {
                for (int i = 0; i < lines.length; i++) {
                    if (point.getY() > textInputPoint.getY() + i * 15 - 15
                            && point.getY() <= textInputPoint.getY() + i * 15) {
                        cursorX = fm.stringWidth(lines[i]);
                        if (point.getX() >= textInputPoint.getX()
                                && point.getX() <= textInputPoint.getX() + 3 + cursorX) {
                            if (point.getX() >= textInputPoint.getX()
                                    && point.getX() < textInputPoint.getX() + 3) {
                                pickX = 0;
                            }
                            double lastEnd = textInputPoint.getX() + 3;
                            for (int j = 0; j < lines[i].length(); j++) {
                                int size = fm.stringWidth(lines[i].substring(0, j + 1));
                                double newEnd = textInputPoint.getX() + 3 + size;
                                if (point.getX() >= lastEnd
                                        && point.getX() < lastEnd + (newEnd - lastEnd) / 2) {
                                    pickX = j;
                                } else if (point.getX() >= lastEnd + (newEnd - lastEnd) / 2
                                        && point.getX() < newEnd) {
                                    pickX = j + 1;
                                }
                                lastEnd = newEnd;
                            }
                            if (pickX >= 0) {
                                textInputCursorIndex = charCount + pickX;
                            }
                        } else {
                            textInputCursorIndex = charCount + lines[i].length();
                        }
                        break;
                    }
                    charCount += lines[i].length() + 1;
                }
            }
            //            }

            if (finishInput) {
                if (textInputContent != null && textInputContent.length() > 0) {
                    double xNew = ChartMaskingUtilities.translateScreenX(textInputPoint.getX(),
                            getScreenDataArea(), getChart());
                    double yNew = ChartMaskingUtilities.translateScreenY(textInputPoint.getY(),
                            getScreenDataArea(), getChart(), 0);
                    textContentMap.put(new Rectangle2D.Double(xNew, yNew, maxWidth, lines.length * 15),
                            textInputContent);
                }
                textInputContent = null;
                textInputCursorIndex = 0;
                textInputFlag = false;
            }
        }
    }
}

From source file:org.sikuli.ide.SikuliIDE.java

private void initRunMenu() throws NoSuchMethodException {
    JMenuItem item;//from w  ww . j a  v a 2  s . c  om
    int scMask = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
    _runMenu.setMnemonic(java.awt.event.KeyEvent.VK_R);
    item = _runMenu.add(createMenuItem(_I("menuRunRun"),
            KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, scMask), new RunAction(RunAction.RUN)));
    item.setName("RUN");
    item = _runMenu.add(createMenuItem(_I("menuRunRunAndShowActions"),
            KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, InputEvent.ALT_MASK | scMask),
            new RunAction(RunAction.RUN_SHOW_ACTIONS)));
    item.setName("RUN_SLOWLY");

    PreferencesUser pref = PreferencesUser.getInstance();
    item = createMenuItem(_I("menuRunStop"),
            KeyStroke.getKeyStroke(pref.getStopHotkey(), pref.getStopHotkeyModifiers()),
            new RunAction(RunAction.RUN_SHOW_ACTIONS));
    item.setEnabled(false);
    _runMenu.add(item);
}

From source file:nz.govt.natlib.ndha.manualdeposit.ManualDepositMain.java

private void initComponents() {

    sourceButtonGroup = new javax.swing.ButtonGroup();
    mnuMain = new javax.swing.JMenuBar();
    mnuFile = new javax.swing.JMenu();
    mnuFileProperties = new javax.swing.JMenuItem();
    mnuFileFavourites = new javax.swing.JMenu();
    mnuFileSelectDirectory = new javax.swing.JMenuItem();
    mnuManageStructMapFileDesc = new javax.swing.JMenuItem();
    jSeparator1 = new javax.swing.JSeparator();
    mnuFileExit = new javax.swing.JMenuItem();
    mnuTemplates = new javax.swing.JMenu();
    mnuTemplatesSave = new javax.swing.JMenuItem();
    mnuTemplatesDelete = new javax.swing.JMenuItem();
    mnuTemplatesSaveShared = new javax.swing.JMenuItem();
    jSeparator2 = new javax.swing.JSeparator();
    mnuTemplatesClear = new javax.swing.JMenuItem();
    mnuView = new javax.swing.JMenu();
    mnuViewShowSearch = new javax.swing.JCheckBoxMenuItem();
    mnuViewShowMetaData = new javax.swing.JCheckBoxMenuItem();
    jSeparator3 = new javax.swing.JSeparator();
    mnuShowBulkLoad = new javax.swing.JMenuItem();
    mnuHotKeys = new javax.swing.JMenu();
    mnuHotKeysMenu = new javax.swing.JMenuItem();
    mnuHotKeysSetIE = new javax.swing.JMenuItem();
    mnuHotKeysSetEachFileIE = new javax.swing.JMenuItem();
    mnuHotKeysUseFileForIE = new javax.swing.JMenuItem();
    mnuHotKeysOpenFile = new javax.swing.JMenuItem();
    mnuHotKeysStoreAsFavourite = new javax.swing.JMenuItem();
    mnuHotKeysDigitalOriginal = new javax.swing.JMenuItem();
    mnuHotKeysPreservationCopy = new javax.swing.JMenuItem();
    mnuHotKeysModifiedMaster = new javax.swing.JMenuItem();
    mnuHotKeysAccessCopy = new javax.swing.JMenuItem();
    mnuHotKeysDelete = new javax.swing.JMenuItem();
    mnuHotKeysMoveFileUp = new javax.swing.JMenuItem();
    mnuHotKeysMoveFileDown = new javax.swing.JMenuItem();
    mnuHotKeysMakeStruct = new javax.swing.JMenuItem();
    mnuHotKeysSelectAllFiles = new javax.swing.JMenuItem();
    mnuHotKeysAccessCopyHigh = new javax.swing.JMenuItem();
    mnuHotKeysAccessCopyMedium = new javax.swing.JMenuItem();
    mnuHotKeysAccessCopyLow = new javax.swing.JMenuItem();
    mnuHotKeysAccessCopyEpub = new javax.swing.JMenuItem();
    mnuHotKeysAccessCopyPdf = new javax.swing.JMenuItem();
    mnuHelp = new javax.swing.JMenu();
    mnuHelpContents = new javax.swing.JMenuItem();
    mnuHelpAbout = new javax.swing.JMenuItem();
    tabMain = new javax.swing.JTabbedPane();
    pnlAddIE = new javax.swing.JPanel();
    splitAddIE = new javax.swing.JSplitPane();
    pnlCmsReference = new javax.swing.JPanel();
    pnlSource = new javax.swing.JPanel();
    rbnCMS2 = new javax.swing.JRadioButton();
    rbnCMS1 = new javax.swing.JRadioButton();
    rbnStaffMediated = new javax.swing.JRadioButton();
    rbnNoCmsRef = new javax.swing.JRadioButton();
    pnlSearchDetail = new javax.swing.JPanel();
    pnlSelectProducer = new javax.swing.JPanel();
    scrlProducerList = new javax.swing.JScrollPane();
    lstProducers = new javax.swing.JList();
    jLabel2 = new javax.swing.JLabel();
    txtProducerFilter = new javax.swing.JTextField();
    jScrollPane1 = new javax.swing.JScrollPane();
    lstMaterialFlow = new javax.swing.JList();
    jLabel11 = new javax.swing.JLabel();
    pnlSearch = new javax.swing.JPanel();
    txtSearch1 = new javax.swing.JTextField();
    lblSearch1 = new javax.swing.JLabel();
    txtSearch2 = new javax.swing.JTextField();
    lblSearch2 = new javax.swing.JLabel();
    txtSearch3 = new javax.swing.JTextField();
    lblSearch3 = new javax.swing.JLabel();
    txtSearch4 = new javax.swing.JTextField();
    lblSearch4 = new javax.swing.JLabel();
    txtSearch5 = new javax.swing.JTextField();
    lblSearch5 = new javax.swing.JLabel();
    txtSearch6 = new javax.swing.JTextField();
    lblSearch6 = new javax.swing.JLabel();
    txtSearch7 = new javax.swing.JTextField();
    lblSearch7 = new javax.swing.JLabel();
    txtSearch8 = new javax.swing.JTextField();
    lblSearch8 = new javax.swing.JLabel();
    txtSearch9 = new javax.swing.JTextField();
    lblSearch9 = new javax.swing.JLabel();
    txtSearch10 = new javax.swing.JTextField();
    lblSearch10 = new javax.swing.JLabel();
    txtSearch11 = new javax.swing.JTextField();
    lblSearch11 = new javax.swing.JLabel();
    txtSearch12 = new javax.swing.JTextField();
    lblSearch12 = new javax.swing.JLabel();
    txtSearch13 = new javax.swing.JTextField();
    lblSearch13 = new javax.swing.JLabel();
    txtSearch14 = new javax.swing.JTextField();
    lblSearch14 = new javax.swing.JLabel();
    txtSearch15 = new javax.swing.JTextField();
    lblSearch15 = new javax.swing.JLabel();
    cmdDoSearch = new javax.swing.JButton();
    pnlTrees = new javax.swing.JPanel();
    splitMainDetail = new javax.swing.JSplitPane();
    splitMain = new javax.swing.JSplitPane();
    pnlFileSystem = new javax.swing.JPanel();
    scrlFileSystem = new javax.swing.JScrollPane();
    treeFileSystem = new javax.swing.JTree();
    lblSelectFiles = new javax.swing.JLabel();
    cmbSortBy = new javax.swing.JComboBox();
    jLabel19 = new javax.swing.JLabel();
    cmbFixityType = new javax.swing.JComboBox();
    jLabel3 = new javax.swing.JLabel();
    pnlEntity = new javax.swing.JPanel();
    pnlRightSide = new javax.swing.JPanel();
    splitMainRight = new javax.swing.JSplitPane();
    pnlIntellectualEntity = new javax.swing.JPanel();
    scrlEntities = new javax.swing.JScrollPane();
    treeEntities = new javax.swing.JTree();
    lblIE = new javax.swing.JLabel();
    pnlStructMapParent = new javax.swing.JPanel();
    pnlStructMap = new javax.swing.JPanel();
    lblStructureMap = new javax.swing.JLabel();
    scrlStructMap = new javax.swing.JScrollPane();
    treeStructMap = new javax.swing.JTree();
    jLabel21 = new javax.swing.JLabel();
    cmbSelectStructTemplate = new javax.swing.JComboBox();
    cmdSaveStructTemplate = new javax.swing.JButton();
    cmdDeleteStructTemplate = new javax.swing.JButton();
    cmdSaveSharedStructTemplate = new javax.swing.JButton();
    jLabel1 = new javax.swing.JLabel();
    pnlDetail = new javax.swing.JPanel();
    scrlDetail = new javax.swing.JScrollPane();
    tblDetail = new javax.swing.JTable();
    jLabel4 = new javax.swing.JLabel();
    cmbSelectTemplate = new javax.swing.JComboBox();
    cmdSaveAsTemplate = new javax.swing.JButton();
    cmdDeleteTemplate = new javax.swing.JButton();
    cmdSaveAsSharedTemplate = new javax.swing.JButton();
    cmdClearMetaData = new javax.swing.JButton();
    pnlButtons = new javax.swing.JPanel();
    cmdCancel = new javax.swing.JButton();
    cmdLoad = new javax.swing.JButton();
    cmdAddProvenanceNote = new javax.swing.JButton();
    cmdCustomizeMetaData = new javax.swing.JButton();
    lblNoOfIEs = new javax.swing.JLabel();
    lblNoOfFiles = new javax.swing.JLabel();
    jProgressBar1 = new javax.swing.JProgressBar(0, 100);
    pnlJobQueue = new javax.swing.JPanel();
    mspJobQueue = new org.jdesktop.swingx.JXMultiSplitPane();
    pnlJobQueueRunning = new javax.swing.JPanel();
    scrlJobQueueRunning = new javax.swing.JScrollPane();
    tblJobQueueRunning = new javax.swing.JTable();
    pnlJobQueuePending = new javax.swing.JPanel();
    scrlJobQueuePending = new javax.swing.JScrollPane();
    tblJobQueuePending = new javax.swing.JTable();
    pnlJobQueueFailed = new javax.swing.JPanel();
    scrlJobQueueFailed = new javax.swing.JScrollPane();
    tblJobQueueFailed = new javax.swing.JTable();
    pnlJobQueueDeposited = new javax.swing.JPanel();
    scrlJobQueueDeposited = new javax.swing.JScrollPane();
    tblJobQueueDeposited = new javax.swing.JTable();
    pnlJobQueueComplete = new javax.swing.JPanel();
    scrlJobQueueComplete = new javax.swing.JScrollPane();
    tblJobQueueComplete = new javax.swing.JTable();

    mnuFile.setMnemonic('F');
    mnuFile.setText("File");

    mnuFileProperties.setMnemonic('P');
    mnuFileProperties.setText("Properties");
    mnuFileProperties.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuFilePropertiesActionPerformed(evt);
        }/*from  w  ww  .  j  a  v a  2s  . c  om*/
    });
    mnuFile.add(mnuFileProperties);

    mnuFileFavourites.setText("Favourite Directories");
    mnuFile.add(mnuFileFavourites);

    mnuFileSelectDirectory.setText("Find Directory");
    mnuFileSelectDirectory.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuFileSelectDirectoryActionPerformed(evt);
        }
    });
    mnuFile.add(mnuFileSelectDirectory);

    mnuManageStructMapFileDesc.setMnemonic('S');
    mnuManageStructMapFileDesc.setText("Manage Structure Map File Descriptions");
    mnuManageStructMapFileDesc.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuManageStructMapFileDescActionPerformed(evt);
        }
    });
    mnuFile.add(mnuManageStructMapFileDesc);
    mnuFile.add(jSeparator1);

    mnuFileExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X,
            java.awt.event.InputEvent.ALT_MASK));
    mnuFileExit.setMnemonic('x');
    mnuFileExit.setText("Exit");
    mnuFileExit.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuFileExitActionPerformed(evt);
        }
    });
    mnuFile.add(mnuFileExit);

    mnuMain.add(mnuFile);

    mnuTemplates.setMnemonic('T');
    mnuTemplates.setText("Templates");

    mnuTemplatesSave.setMnemonic('S');
    mnuTemplatesSave.setText("Save Template");
    mnuTemplatesSave.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuTemplatesSaveActionPerformed(evt);
        }
    });
    mnuTemplates.add(mnuTemplatesSave);

    mnuTemplatesDelete.setMnemonic('D');
    mnuTemplatesDelete.setText("Delete Template");
    mnuTemplatesDelete.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuTemplatesDeleteActionPerformed(evt);
        }
    });
    mnuTemplates.add(mnuTemplatesDelete);

    mnuTemplatesSaveShared.setMnemonic('V');
    mnuTemplatesSaveShared.setText("Save as Shared Template");
    mnuTemplatesSaveShared.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuTemplatesSaveSharedActionPerformed(evt);
        }
    });
    mnuTemplates.add(mnuTemplatesSaveShared);
    mnuTemplates.add(jSeparator2);

    mnuTemplatesClear.setMnemonic('C');
    mnuTemplatesClear.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuTemplatesClearActionPerformed(evt);
        }
    });
    mnuTemplates.add(mnuTemplatesClear);

    mnuMain.add(mnuTemplates);

    mnuView.setMnemonic('V');
    mnuView.setText("View");

    mnuViewShowSearch.setMnemonic('1');
    mnuViewShowSearch.setSelected(true);
    mnuViewShowSearch.setText("Show Search (<Ctrl>S)");
    mnuViewShowSearch.setActionCommand("Show Search (<ctrl>S)");
    mnuViewShowSearch.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuViewShowSearchActionPerformed(evt);
        }
    });
    mnuView.add(mnuViewShowSearch);

    mnuViewShowMetaData.setMnemonic('2');
    mnuViewShowMetaData.setSelected(true);
    mnuViewShowMetaData.setText("Show Metadata (<Ctrl>M)");
    mnuViewShowMetaData.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuViewShowMetaDataActionPerformed(evt);
        }
    });
    mnuView.add(mnuViewShowMetaData);
    mnuView.add(jSeparator3);

    mnuShowBulkLoad.setText("Show Bulk Load Screen");
    mnuShowBulkLoad.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuShowBulkLoadActionPerformed(evt);
        }
    });
    mnuView.add(mnuShowBulkLoad);

    mnuMain.add(mnuView);

    mnuHotKeys.setMnemonic('K');
    mnuHotKeys.setText("Hot Keys");

    mnuHotKeysMenu.setMnemonic('M');
    mnuHotKeysMenu.setText("<Alt>M - Display File Menu");
    mnuHotKeysMenu.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysMenuActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysMenu);

    mnuHotKeysSetIE.setMnemonic('S');
    mnuHotKeysSetIE.setText("<Alt>S - Select current directory as IE root");
    mnuHotKeysSetIE.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysSetIEActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysSetIE);

    mnuHotKeysSetEachFileIE.setMnemonic('E');
    mnuHotKeysSetEachFileIE.setText("<Alt>E - Make each file an IE");
    mnuHotKeysSetEachFileIE.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysSetEachFileIEActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysSetEachFileIE);

    mnuHotKeysUseFileForIE.setMnemonic('S');
    mnuHotKeysUseFileForIE.setText("<Alt>S - Select file to describe the IE");
    mnuHotKeysUseFileForIE.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysUseFileForIEActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysUseFileForIE);

    mnuHotKeysOpenFile.setMnemonic('O');
    mnuHotKeysOpenFile.setText("<Alt>O - Open Item(s)");
    mnuHotKeysOpenFile.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysOpenFileActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysOpenFile);

    mnuHotKeysStoreAsFavourite.setMnemonic('F');
    mnuHotKeysStoreAsFavourite.setText("<Alt> F - Store Directory As Favourite");
    mnuHotKeysStoreAsFavourite.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysStoreAsFavouriteActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysStoreAsFavourite);

    mnuHotKeysDigitalOriginal.setMnemonic('D');
    mnuHotKeysDigitalOriginal.setText("<Alt>D - Add selected files to a new Digital Original");
    mnuHotKeysDigitalOriginal.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysDigitalOriginalActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysDigitalOriginal);

    mnuHotKeysPreservationCopy.setMnemonic('P');
    mnuHotKeysPreservationCopy.setText("<Alt>P - Add selected files to a new Preservation Copy");
    mnuHotKeysPreservationCopy.setActionCommand("<Alt>P - Add selected files to a new Preservation Master");
    mnuHotKeysPreservationCopy.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysPreservationCopyActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysPreservationCopy);

    mnuHotKeysModifiedMaster.setMnemonic('M');
    mnuHotKeysModifiedMaster.setText("<Alt>M - Add selected files to a new Modified Master");
    mnuHotKeysModifiedMaster.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysModifiedMasterActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysModifiedMaster);

    mnuHotKeysAccessCopy.setMnemonic('A');
    mnuHotKeysAccessCopy.setText("<Alt>A - Add selected files to a new Access Copy");
    mnuHotKeysAccessCopy.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysAccessCopyActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysAccessCopy);

    mnuHotKeysDelete.setMnemonic('L');
    mnuHotKeysDelete.setText("<Delete> - Delete file or folder");
    mnuHotKeysDelete.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysDeleteActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysDelete);

    mnuHotKeysMoveFileUp.setMnemonic('U');
    mnuHotKeysMoveFileUp.setText("<Alt>Up - Move file up");
    mnuHotKeysMoveFileUp.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysMoveFileUpActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysMoveFileUp);

    mnuHotKeysMoveFileDown.setMnemonic('D');
    mnuHotKeysMoveFileDown.setText("<Alt>Down - Move file down");
    mnuHotKeysMoveFileDown.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysMoveFileDownActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysMoveFileDown);

    mnuHotKeysMakeStruct.setMnemonic('S');
    mnuHotKeysMakeStruct.setText("<Alt>S - Create a Structure Map item from selected files");
    mnuHotKeysMakeStruct.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysMakeStructActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysMakeStruct);

    mnuHotKeysSelectAllFiles.setMnemonic('R');
    mnuHotKeysSelectAllFiles
            .setText("<Alt>R - Select the same file from all representation types & make a struct item");
    mnuHotKeysSelectAllFiles.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysSelectAllFilesActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysSelectAllFiles);

    mnuHotKeysAccessCopyHigh.setMnemonic('H');
    mnuHotKeysAccessCopyHigh.setText("<Alt>H - Add selected files to a new Access Copy HIGH");
    mnuHotKeysAccessCopyHigh.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysAccessCopyHighActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysAccessCopyHigh);

    mnuHotKeysAccessCopyMedium.setMnemonic('I');
    mnuHotKeysAccessCopyMedium.setText("<Alt>I - Add selected files to a new Access Copy MEDIUM");
    mnuHotKeysAccessCopyMedium.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysAccessCopyMediumActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysAccessCopyMedium);

    mnuHotKeysAccessCopyLow.setMnemonic('L');
    mnuHotKeysAccessCopyLow.setText("<Alt>L - Add selected files to a new Access Copy LOW");
    mnuHotKeysAccessCopyLow.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysAccessCopyLowActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysAccessCopyLow);

    mnuHotKeysAccessCopyEpub.setMnemonic('B');
    mnuHotKeysAccessCopyEpub.setText("<Alt>B - Add selected files to a new Access Copy EPUB");
    mnuHotKeysAccessCopyEpub.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysAccessCopyEpubActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysAccessCopyEpub);

    mnuHotKeysAccessCopyPdf.setMnemonic('C');
    mnuHotKeysAccessCopyPdf.setText("<Alt>C - Add selected files to a new Access Copy PDF");
    mnuHotKeysAccessCopyPdf.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHotKeysAccessCopyPdfActionPerformed(evt);
        }
    });
    mnuHotKeys.add(mnuHotKeysAccessCopyPdf);

    mnuMain.add(mnuHotKeys);

    mnuHelp.setMnemonic('H');
    mnuHelp.setText("Help");

    mnuHelpContents.setMnemonic('C');
    mnuHelpContents.setText("Contents");
    mnuHelpContents.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHelpContentsActionPerformed(evt);
        }
    });
    mnuHelp.add(mnuHelpContents);

    mnuHelpAbout.setMnemonic('A');
    mnuHelpAbout.setText("About");
    mnuHelpAbout.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            mnuHelpAboutActionPerformed(evt);
        }
    });
    mnuHelp.add(mnuHelpAbout);

    mnuMain.add(mnuHelp);

    setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
    //setTitle(title);
    setName("frmMain"); // NOI18N
    addWindowListener(new java.awt.event.WindowAdapter() {
        public void windowClosing(java.awt.event.WindowEvent evt) {
            formWindowClosing(evt);
        }
    });

    tabMain.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            jobQueueFocusGained(evt);
        }
    });

    pnlAddIE.setFont(new java.awt.Font("Tahoma", 0, 5)); // NOI18N

    splitAddIE.setDividerLocation(175);
    splitAddIE.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);

    pnlCmsReference.setBorder(javax.swing.BorderFactory.createTitledBorder("CMS Reference"));
    pnlCmsReference.setName("pnlCMSReference"); // NOI18N
    pnlCmsReference.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            pnlCmsReferenceFocusGained(evt);
        }
    });

    pnlSource.setBorder(javax.swing.BorderFactory.createTitledBorder("Source"));

    sourceButtonGroup.add(rbnCMS2);
    rbnCMS2.setSelected(true);
    rbnCMS2.setText("Tapuhi");
    rbnCMS2.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
    rbnCMS2.setMargin(new java.awt.Insets(0, 0, 0, 0));
    rbnCMS2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            rbnCMS2SearchTypeChanged(evt);
        }
    });

    sourceButtonGroup.add(rbnCMS1);
    rbnCMS1.setText("CMS1");
    rbnCMS1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
    rbnCMS1.setMargin(new java.awt.Insets(0, 0, 0, 0));
    rbnCMS1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            rbnCMS1SearchTypeChanged(evt);
        }
    });

    sourceButtonGroup.add(rbnStaffMediated);
    rbnStaffMediated.setText("Staff Mediated");
    rbnStaffMediated.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
    rbnStaffMediated.setMargin(new java.awt.Insets(0, 0, 0, 0));
    rbnStaffMediated.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            rbnStaffMediatedActionPerformed(evt);
        }
    });

    sourceButtonGroup.add(rbnNoCmsRef);
    rbnNoCmsRef.setText("Currently no CMS reference");
    rbnNoCmsRef.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
    rbnNoCmsRef.setMargin(new java.awt.Insets(0, 0, 0, 0));
    rbnNoCmsRef.setName("rbnNoCmsRef"); // NOI18N
    rbnNoCmsRef.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            rbnNoCmsRefSearchTypeChanged(evt);
        }
    });

    org.jdesktop.layout.GroupLayout pnlSourceLayout = new org.jdesktop.layout.GroupLayout(pnlSource);
    pnlSource.setLayout(pnlSourceLayout);
    pnlSourceLayout
            .setHorizontalGroup(pnlSourceLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pnlSourceLayout.createSequentialGroup().addContainerGap()
                            .add(pnlSourceLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(rbnCMS2).add(rbnCMS1).add(rbnNoCmsRef).add(rbnStaffMediated))
                            .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    pnlSourceLayout
            .setVerticalGroup(pnlSourceLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pnlSourceLayout.createSequentialGroup().add(rbnCMS2)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(rbnCMS1).add(4, 4, 4)
                            .add(rbnStaffMediated).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(rbnNoCmsRef).addContainerGap(15, Short.MAX_VALUE)));

    pnlSearchDetail.setLayout(new java.awt.CardLayout());

    pnlSelectProducer.setBorder(javax.swing.BorderFactory.createTitledBorder("Select Producer"));
    pnlSelectProducer.setMaximumSize(null);

    lstProducers.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
            lstProducersValueChanged(evt);
        }
    });
    lstProducers.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseReleased(java.awt.event.MouseEvent evt) {
            lstProducersMouseReleased(evt);
        }
    });
    scrlProducerList.setViewportView(lstProducers);

    jLabel2.setText("Filter");

    txtProducerFilter.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            txtProducerFilterUpdate(evt);
        }
    });

    lstMaterialFlow.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
        public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
            lstMaterialFlowValueChanged(evt);
        }
    });
    jScrollPane1.setViewportView(lstMaterialFlow);

    jLabel11.setText("Select Material Flow");

    org.jdesktop.layout.GroupLayout pnlSelectProducerLayout = new org.jdesktop.layout.GroupLayout(
            pnlSelectProducer);
    pnlSelectProducer.setLayout(pnlSelectProducerLayout);
    pnlSelectProducerLayout.setHorizontalGroup(pnlSelectProducerLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlSelectProducerLayout.createSequentialGroup().addContainerGap().add(pnlSelectProducerLayout
                    .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pnlSelectProducerLayout.createSequentialGroup().add(jLabel2)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED).add(txtProducerFilter,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 220, Short.MAX_VALUE))
                    .add(scrlProducerList, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 254, Short.MAX_VALUE))
                    .add(18, 18, 18)
                    .add(pnlSelectProducerLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(pnlSelectProducerLayout.createSequentialGroup().add(jLabel11).add(174, 174,
                                    174))
                            .add(pnlSelectProducerLayout
                                    .createSequentialGroup().add(jScrollPane1,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 286, Short.MAX_VALUE)
                                    .addContainerGap()))));
    pnlSelectProducerLayout.setVerticalGroup(pnlSelectProducerLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlSelectProducerLayout.createSequentialGroup()
                    .add(pnlSelectProducerLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(jLabel2).add(jLabel11).add(txtProducerFilter,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(pnlSelectProducerLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 81,
                                    Short.MAX_VALUE)
                            .add(scrlProducerList, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 82,
                                    Short.MAX_VALUE))
                    .addContainerGap()));

    pnlSearchDetail.add(pnlSelectProducer, "SelectProducer");

    pnlSearch.setBorder(javax.swing.BorderFactory.createTitledBorder("Search for"));

    txtSearch1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch1.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch1.setText("jLabel3");

    txtSearch2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch2.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch2.setText("jLabel3");

    txtSearch3.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch3.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch3.setText("jLabel3");

    txtSearch4.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch4.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch4.setText("jLabel3");

    txtSearch5.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch5.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch5.setText("jLabel3");

    txtSearch6.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch6.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch6.setText("jLabel3");

    txtSearch7.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch7.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch7.setText("jLabel3");

    txtSearch8.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch8.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch8.setText("jLabel3");

    txtSearch9.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch9.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch9.setText("jLabel3");

    txtSearch10.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch10.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch10.setText("jLabel3");

    txtSearch11.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch11.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch11.setText("jLabel3");

    txtSearch12.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch12.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch12.setText("jLabel3");

    txtSearch13.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch13.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch13.setText("jLabel3");

    txtSearch14.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch14.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch14.setText("jLabel3");

    txtSearch15.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });
    txtSearch15.addCaretListener(new javax.swing.event.CaretListener() {
        public void caretUpdate(javax.swing.event.CaretEvent evt) {
            ManualDepositMain.this.caretUpdate(evt);
        }
    });

    lblSearch15.setText("jLabel3");

    cmdDoSearch.setText("Search");
    cmdDoSearch.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            doSearch(evt);
        }
    });

    org.jdesktop.layout.GroupLayout pnlSearchLayout = new org.jdesktop.layout.GroupLayout(pnlSearch);
    pnlSearch.setLayout(pnlSearchLayout);
    pnlSearchLayout.setHorizontalGroup(pnlSearchLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlSearchLayout.createSequentialGroup().addContainerGap()
                    .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(lblSearch3).add(lblSearch2).add(lblSearch1).add(lblSearch4))
                    .add(18, 18, 18)
                    .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(txtSearch4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
                            .add(txtSearch3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
                            .add(txtSearch2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
                            .add(txtSearch1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(lblSearch8).add(lblSearch7).add(lblSearch6).add(lblSearch5))
                    .add(24, 24, 24)
                    .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(txtSearch8, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
                            .add(txtSearch7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
                            .add(txtSearch6, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE)
                            .add(txtSearch5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 78, Short.MAX_VALUE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(lblSearch12).add(lblSearch9).add(lblSearch10).add(lblSearch11))
                    .add(24, 24, 24)
                    .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(txtSearch12, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE)
                            .add(txtSearch11, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE)
                            .add(txtSearch10, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE)
                            .add(txtSearch9, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                            .add(cmdDoSearch, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 89,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(org.jdesktop.layout.GroupLayout.LEADING,
                                    pnlSearchLayout.createSequentialGroup().add(lblSearch15).add(24, 24, 24)
                                            .add(txtSearch15, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 83,
                                                    Short.MAX_VALUE))
                            .add(pnlSearchLayout.createSequentialGroup().add(lblSearch13).add(24, 24, 24).add(
                                    txtSearch13, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 83,
                                    Short.MAX_VALUE))
                            .add(pnlSearchLayout.createSequentialGroup().add(lblSearch14).add(24, 24, 24).add(
                                    txtSearch14, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 83,
                                    Short.MAX_VALUE)))
                    .addContainerGap()));
    pnlSearchLayout.setVerticalGroup(pnlSearchLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlSearchLayout.createSequentialGroup().add(pnlSearchLayout
                    .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pnlSearchLayout.createSequentialGroup().add(pnlSearchLayout
                            .createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(lblSearch1)
                            .add(txtSearch1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                    .add(lblSearch2).add(txtSearch2,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                    .add(lblSearch3).add(txtSearch3,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(pnlSearchLayout.createSequentialGroup()
                            .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                    .add(lblSearch5)
                                    .add(txtSearch5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(txtSearch9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(lblSearch9))
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                    .add(lblSearch6)
                                    .add(txtSearch6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(lblSearch10).add(txtSearch10,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                    .add(lblSearch7)
                                    .add(txtSearch7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(lblSearch11).add(txtSearch11,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                    .add(lblSearch8).add(lblSearch4)
                                    .add(txtSearch8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(lblSearch12)
                                    .add(txtSearch12, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(txtSearch4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, pnlSearchLayout.createSequentialGroup()
                            .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                    .add(lblSearch13).add(txtSearch13,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                    .add(lblSearch14).add(txtSearch14,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(pnlSearchLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                    .add(lblSearch15).add(txtSearch15,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 12, Short.MAX_VALUE)
                            .add(cmdDoSearch)))
                    .addContainerGap()));

    pnlSearchDetail.add(pnlSearch, "Search");

    org.jdesktop.layout.GroupLayout pnlCmsReferenceLayout = new org.jdesktop.layout.GroupLayout(
            pnlCmsReference);
    pnlCmsReference.setLayout(pnlCmsReferenceLayout);
    pnlCmsReferenceLayout.setHorizontalGroup(
            pnlCmsReferenceLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pnlCmsReferenceLayout.createSequentialGroup()
                            .add(pnlSource, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(pnlSearchDetail, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addContainerGap()));
    pnlCmsReferenceLayout.setVerticalGroup(pnlCmsReferenceLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlCmsReferenceLayout.createSequentialGroup()
                    .add(pnlCmsReferenceLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(pnlSource, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(pnlSearchDetail, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 145,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(24, 24, 24)));

    splitAddIE.setLeftComponent(pnlCmsReference);
    pnlCmsReference.getAccessibleContext().setAccessibleName("CMS Reference Search");

    pnlTrees.setBorder(javax.swing.BorderFactory.createTitledBorder("Intellectual Entity"));
    pnlTrees.setAutoscrolls(true);
    pnlTrees.setName("pnlIntellectualEntity"); // NOI18N

    splitMainDetail.setDividerLocation(200);
    splitMainDetail.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
    splitMainDetail.setContinuousLayout(true);
    splitMainDetail.setDoubleBuffered(true);

    splitMain.setDividerLocation(200);

    pnlFileSystem.setPreferredSize(new java.awt.Dimension(400, 100));

    treeFileSystem.setAutoscrolls(true);
    treeFileSystem.setDoubleBuffered(true);
    treeFileSystem.addTreeExpansionListener(new javax.swing.event.TreeExpansionListener() {
        public void treeCollapsed(javax.swing.event.TreeExpansionEvent evt) {
        }

        public void treeExpanded(javax.swing.event.TreeExpansionEvent evt) {
            treeFileSystemTreeExpanded(evt);
        }
    });
    treeFileSystem.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
        public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
            treeFileSystemValueChanged(evt);
        }
    });
    treeFileSystem.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            fileSystemFocusGained(evt);
        }
    });
    treeFileSystem.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            treeFileSystemKeyPressed(evt);
        }

        public void keyTyped(java.awt.event.KeyEvent evt) {
            treeFileSystemKeyTyped(evt);
        }
    });
    treeFileSystem.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            treeFileSystemMouseClicked(evt);
        }

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            treeFileSystemMouseEntered(evt);
        }

        public void mousePressed(java.awt.event.MouseEvent evt) {
            treeFileSystemMousePressed(evt);
        }

        public void mouseReleased(java.awt.event.MouseEvent evt) {
            treeFileSystemMouseReleased(evt);
        }
    });
    scrlFileSystem.setViewportView(treeFileSystem);

    lblSelectFiles.setText("Select File(s)");

    cmbSortBy.setModel(
            new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
    cmbSortBy.setMinimumSize(new java.awt.Dimension(70, 18));
    cmbSortBy.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmbSortByActionPerformed(evt);
        }
    });
    cmbSortBy.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            notSpecifiedFocusGained(evt);
        }
    });

    jLabel19.setText("Sort by");

    cmbFixityType.setModel(
            new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
    cmbFixityType.setMinimumSize(new java.awt.Dimension(70, 18));

    jLabel3.setText("Fixity");

    org.jdesktop.layout.GroupLayout pnlFileSystemLayout = new org.jdesktop.layout.GroupLayout(pnlFileSystem);
    pnlFileSystem.setLayout(pnlFileSystemLayout);
    pnlFileSystemLayout.setHorizontalGroup(pnlFileSystemLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(scrlFileSystem)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, pnlFileSystemLayout.createSequentialGroup()
                    .add(pnlFileSystemLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                            .add(pnlFileSystemLayout.createSequentialGroup().add(lblSelectFiles).add(35, 35, 35)
                                    .add(jLabel19))
                            .add(jLabel3))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(pnlFileSystemLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(org.jdesktop.layout.GroupLayout.TRAILING, cmbFixityType, 0, 64,
                                    Short.MAX_VALUE)
                            .add(cmbSortBy, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    Short.MAX_VALUE))));
    pnlFileSystemLayout.setVerticalGroup(pnlFileSystemLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlFileSystemLayout.createSequentialGroup()
                    .add(pnlFileSystemLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(lblSelectFiles).add(jLabel19).add(cmbSortBy,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(4, 4, 4)
                    .add(pnlFileSystemLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(cmbFixityType, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(jLabel3))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(scrlFileSystem, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 147, Short.MAX_VALUE)));

    splitMain.setLeftComponent(pnlFileSystem);

    splitMainRight.setDividerLocation(200);

    pnlIntellectualEntity.setPreferredSize(new java.awt.Dimension(400, 500));

    treeEntities.setToolTipText("");
    treeEntities.setDoubleBuffered(true);
    treeEntities.setEditable(true);
    treeEntities.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            treeEntitiesMouseClicked(evt);
        }

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            treeEntitiesMouseEntered(evt);
        }

        public void mousePressed(java.awt.event.MouseEvent evt) {
            treeEntitiesMousePressed(evt);
        }

        public void mouseReleased(java.awt.event.MouseEvent evt) {
            treeEntitiesMouseReleased(evt);
        }
    });
    treeEntities.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
        public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
            treeEntitiesValueChanged(evt);
        }
    });
    treeEntities.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            entitiesFocusGained(evt);
        }
    });
    treeEntities.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            treeEntitiesKeyPressed(evt);
        }

        public void keyTyped(java.awt.event.KeyEvent evt) {
            treeEntitiesKeyTyped(evt);
        }
    });
    scrlEntities.setViewportView(treeEntities);

    lblIE.setText("Intellectual Entity");

    org.jdesktop.layout.GroupLayout pnlIntellectualEntityLayout = new org.jdesktop.layout.GroupLayout(
            pnlIntellectualEntity);
    pnlIntellectualEntity.setLayout(pnlIntellectualEntityLayout);
    pnlIntellectualEntityLayout.setHorizontalGroup(
            pnlIntellectualEntityLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pnlIntellectualEntityLayout.createSequentialGroup().addContainerGap().add(lblIE)
                            .addContainerGap(105, Short.MAX_VALUE))
                    .add(scrlEntities, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 199, Short.MAX_VALUE));
    pnlIntellectualEntityLayout.setVerticalGroup(pnlIntellectualEntityLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlIntellectualEntityLayout.createSequentialGroup().add(lblIE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                    .add(scrlEntities, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE)));

    splitMainRight.setLeftComponent(pnlIntellectualEntity);

    pnlStructMap.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
    pnlStructMap.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            structMapFocusGained(evt);
        }
    });

    lblStructureMap.setText("Structure Map");

    treeStructMap.setToolTipText("");
    treeStructMap.setDoubleBuffered(true);
    treeStructMap.setEditable(true);
    treeStructMap.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
        public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
            treeStructMapValueChanged(evt);
        }
    });
    treeStructMap.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            structMapFocusGained(evt);
        }
    });
    treeStructMap.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            treeStructMapKeyPressed(evt);
        }

        public void keyTyped(java.awt.event.KeyEvent evt) {
            treeStructMapKeyTyped(evt);
        }
    });
    treeStructMap.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            treeStructMapMouseClicked(evt);
        }

        public void mouseEntered(java.awt.event.MouseEvent evt) {
            treeStructMapMouseEntered(evt);
        }

        public void mouseReleased(java.awt.event.MouseEvent evt) {
            treeStructMapMouseReleased(evt);
        }
    });
    scrlStructMap.setViewportView(treeStructMap);

    jLabel21.setText("Select");

    cmbSelectStructTemplate.setModel(
            new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
    cmbSelectStructTemplate.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmbSelectStructTemplateActionPerformed(evt);
        }
    });
    cmbSelectStructTemplate.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            notSpecifiedFocusGained(evt);
        }
    });

    cmdSaveStructTemplate.setText("Save");
    cmdSaveStructTemplate.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmdSaveStructTemplateActionPerformed(evt);
        }
    });
    cmdSaveStructTemplate.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            notSpecifiedFocusGained(evt);
        }
    });

    cmdDeleteStructTemplate.setText("Delete");
    cmdDeleteStructTemplate.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmdDeleteStructTemplateActionPerformed(evt);
        }
    });
    cmdDeleteStructTemplate.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            notSpecifiedFocusGained(evt);
        }
    });

    cmdSaveSharedStructTemplate.setText("Save Shared");
    cmdSaveSharedStructTemplate.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmdSaveSharedStructTemplateActionPerformed(evt);
        }
    });
    cmdSaveSharedStructTemplate.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            notSpecifiedFocusGained(evt);
        }
    });

    jLabel1.setText("Templates");

    org.jdesktop.layout.GroupLayout pnlStructMapLayout = new org.jdesktop.layout.GroupLayout(pnlStructMap);
    pnlStructMap.setLayout(pnlStructMapLayout);
    pnlStructMapLayout.setHorizontalGroup(pnlStructMapLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlStructMapLayout.createSequentialGroup().add(pnlStructMapLayout
                    .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pnlStructMapLayout.createSequentialGroup().addContainerGap().add(cmdSaveStructTemplate)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(cmdDeleteStructTemplate)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(cmdSaveSharedStructTemplate))
                    .add(pnlStructMapLayout.createSequentialGroup().add(pnlStructMapLayout
                            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(pnlStructMapLayout.createSequentialGroup().addContainerGap()
                                    .add(pnlStructMapLayout
                                            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                            .add(lblStructureMap).add(jLabel1)))
                            .add(pnlStructMapLayout.createSequentialGroup().add(84, 84, 84).add(jLabel21)))
                            .add(18, 18, 18).add(cmbSelectStructTemplate, 0, 358, Short.MAX_VALUE)))
                    .addContainerGap())
            .add(scrlStructMap, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 499, Short.MAX_VALUE));
    pnlStructMapLayout.setVerticalGroup(pnlStructMapLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlStructMapLayout.createSequentialGroup().add(lblStructureMap)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(pnlStructMapLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(jLabel1).add(jLabel21).add(cmbSelectStructTemplate,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                    .add(pnlStructMapLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(cmdSaveStructTemplate).add(cmdDeleteStructTemplate)
                            .add(cmdSaveSharedStructTemplate))
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(scrlStructMap, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 113, Short.MAX_VALUE)));

    org.jdesktop.layout.GroupLayout pnlStructMapParentLayout = new org.jdesktop.layout.GroupLayout(
            pnlStructMapParent);
    pnlStructMapParent.setLayout(pnlStructMapParentLayout);
    pnlStructMapParentLayout.setHorizontalGroup(
            pnlStructMapParentLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pnlStructMapParentLayout.createSequentialGroup().addContainerGap().add(pnlStructMap,
                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    pnlStructMapParentLayout.setVerticalGroup(
            pnlStructMapParentLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(
                    org.jdesktop.layout.GroupLayout.TRAILING, pnlStructMap,
                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                    Short.MAX_VALUE));

    splitMainRight.setRightComponent(pnlStructMapParent);

    org.jdesktop.layout.GroupLayout pnlRightSideLayout = new org.jdesktop.layout.GroupLayout(pnlRightSide);
    pnlRightSide.setLayout(pnlRightSideLayout);
    pnlRightSideLayout
            .setHorizontalGroup(pnlRightSideLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(splitMainRight, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 717, Short.MAX_VALUE));
    pnlRightSideLayout
            .setVerticalGroup(pnlRightSideLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(splitMainRight, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 197, Short.MAX_VALUE));

    org.jdesktop.layout.GroupLayout pnlEntityLayout = new org.jdesktop.layout.GroupLayout(pnlEntity);
    pnlEntity.setLayout(pnlEntityLayout);
    pnlEntityLayout
            .setHorizontalGroup(pnlEntityLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(org.jdesktop.layout.GroupLayout.TRAILING,
                            pnlEntityLayout.createSequentialGroup().addContainerGap().add(pnlRightSide,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    pnlEntityLayout.setVerticalGroup(
            pnlEntityLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(pnlRightSide,
                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                    Short.MAX_VALUE));

    splitMain.setRightComponent(pnlEntity);

    splitMainDetail.setLeftComponent(splitMain);

    scrlDetail.setBackground(new java.awt.Color(255, 255, 255));

    tblDetail
            .setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
    tblDetail.setOpaque(false);
    tblDetail.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            metaDatalFocusGained(evt);
        }

        public void focusLost(java.awt.event.FocusEvent evt) {
            tblDetailFocusLost(evt);
        }
    });
    scrlDetail.setViewportView(tblDetail);

    jLabel4.setText("Select Template");

    cmbSelectTemplate.setModel(
            new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
    cmbSelectTemplate.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmbSelectTemplateActionPerformed(evt);
        }
    });
    cmbSelectTemplate.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            notSpecifiedFocusGained(evt);
        }
    });
    cmbSelectTemplate.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            cmbSelectTemplateKeyPressed(evt);
        }

        public void keyReleased(java.awt.event.KeyEvent evt) {
            cmbSelectTemplateKeyReleased(evt);
        }

        public void keyTyped(java.awt.event.KeyEvent evt) {
            cmbSelectTemplateKeyTyped(evt);
        }
    });

    cmdSaveAsTemplate.setText("Save Template");
    cmdSaveAsTemplate.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmdSaveAsTemplateActionPerformed(evt);
        }
    });
    cmdSaveAsTemplate.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            notSpecifiedFocusGained(evt);
        }
    });

    cmdDeleteTemplate.setText("Delete Template");
    cmdDeleteTemplate.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmdDeleteTemplateActionPerformed(evt);
        }
    });
    cmdDeleteTemplate.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            notSpecifiedFocusGained(evt);
        }
    });

    cmdSaveAsSharedTemplate.setText("Save Shared Template");
    cmdSaveAsSharedTemplate.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmdSaveAsSharedTemplateActionPerformed(evt);
        }
    });
    cmdSaveAsSharedTemplate.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            notSpecifiedFocusGained(evt);
        }
    });

    cmdClearMetaData.setText("Clear Metadata");
    cmdClearMetaData.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmdClearMetaDataActionPerformed(evt);
        }
    });

    org.jdesktop.layout.GroupLayout pnlDetailLayout = new org.jdesktop.layout.GroupLayout(pnlDetail);
    pnlDetail.setLayout(pnlDetailLayout);
    pnlDetailLayout
            .setHorizontalGroup(pnlDetailLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pnlDetailLayout.createSequentialGroup().add(jLabel4)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(cmbSelectTemplate, 0, 347, Short.MAX_VALUE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(cmdDeleteTemplate, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 113,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(cmdSaveAsTemplate, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 105,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(cmdSaveAsSharedTemplate, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 145,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(18, 18, 18).add(cmdClearMetaData))
                    .add(scrlDetail, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 933, Short.MAX_VALUE));
    pnlDetailLayout
            .setVerticalGroup(pnlDetailLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pnlDetailLayout.createSequentialGroup()
                            .add(pnlDetailLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                    .add(jLabel4).add(cmdClearMetaData)
                                    .add(cmdSaveAsSharedTemplate, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .add(cmbSelectTemplate, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(cmdDeleteTemplate, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .add(cmdSaveAsTemplate, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(scrlDetail,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 137, Short.MAX_VALUE)));

    splitMainDetail.setBottomComponent(pnlDetail);

    cmdCancel.setText("Cancel");
    cmdCancel.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmdCancelActionPerformed(evt);
        }
    });
    cmdCancel.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            notSpecifiedFocusGained(evt);
        }
    });

    cmdLoad.setText("Load Entity");
    cmdLoad.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmdLoadActionPerformed(evt);
        }
    });
    cmdLoad.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            notSpecifiedFocusGained(evt);
        }
    });

    cmdAddProvenanceNote.setText("Edit Provenance Notes");
    cmdAddProvenanceNote.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmdAddProvenanceNoteActionPerformed(evt);
        }
    });

    cmdCustomizeMetaData.setText("Customize MetaData");
    cmdCustomizeMetaData.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            cmdCustomizeMetaDataActionPerformed(evt);
        }
    });

    lblNoOfIEs.setText("No of IEs");

    lblNoOfFiles.setText("No of Files");

    jProgressBar1.setValue(0);

    org.jdesktop.layout.GroupLayout pnlButtonsLayout = new org.jdesktop.layout.GroupLayout(pnlButtons);
    pnlButtons.setLayout(pnlButtonsLayout);
    pnlButtonsLayout
            .setHorizontalGroup(pnlButtonsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pnlButtonsLayout.createSequentialGroup().addContainerGap().add(cmdCancel)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                            .add(cmdLoad, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 89,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(59, 59, 59).add(cmdAddProvenanceNote).add(18, 18, 18)
                            .add(cmdCustomizeMetaData, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 152,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(18, 18, 18)
                            .add(lblNoOfIEs, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 150,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(18, 18, 18)
                            .add(lblNoOfFiles, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 150,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 7, Short.MAX_VALUE)
                            .add(jProgressBar1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .addContainerGap()));
    pnlButtonsLayout.setVerticalGroup(pnlButtonsLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlButtonsLayout.createSequentialGroup().add(12, 12, 12)
                    .add(pnlButtonsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(pnlButtonsLayout.createSequentialGroup().add(1, 1, 1).add(jProgressBar1,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .add(pnlButtonsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                                    .add(cmdCancel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .add(cmdLoad, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .add(cmdAddProvenanceNote).add(cmdCustomizeMetaData).add(lblNoOfIEs)
                                    .add(lblNoOfFiles)))));

    org.jdesktop.layout.GroupLayout pnlTreesLayout = new org.jdesktop.layout.GroupLayout(pnlTrees);
    pnlTrees.setLayout(pnlTreesLayout);
    pnlTreesLayout
            .setHorizontalGroup(pnlTreesLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(splitMainDetail, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                    .add(pnlButtons, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                            org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
    pnlTreesLayout.setVerticalGroup(pnlTreesLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING,
                    pnlTreesLayout.createSequentialGroup().add(splitMainDetail)
                            .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(pnlButtons,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                    org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                    org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)));

    splitAddIE.setRightComponent(pnlTrees);

    org.jdesktop.layout.GroupLayout pnlAddIELayout = new org.jdesktop.layout.GroupLayout(pnlAddIE);
    pnlAddIE.setLayout(pnlAddIELayout);
    pnlAddIELayout.setHorizontalGroup(pnlAddIELayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlAddIELayout.createSequentialGroup().addContainerGap()
                    .add(splitAddIE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 803, Short.MAX_VALUE)
                    .addContainerGap()));
    pnlAddIELayout.setVerticalGroup(pnlAddIELayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlAddIELayout.createSequentialGroup()
                    .add(splitAddIE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 620, Short.MAX_VALUE)
                    .addContainerGap()));

    tabMain.addTab("Add Intellectual Entity", pnlAddIE);

    pnlJobQueue.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            jobQueueFocusGained(evt);
        }
    });

    mspJobQueue.setDividerSize(2);
    mspJobQueue.setMinimumSize(new java.awt.Dimension(100, 100));
    mspJobQueue.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
        public void mouseDragged(java.awt.event.MouseEvent evt) {
            mspJobQueueMouseDragged(evt);
        }
    });

    pnlJobQueueRunning.setBorder(javax.swing.BorderFactory.createTitledBorder("Running Jobs"));

    tblJobQueueRunning
            .setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
    tblJobQueueRunning.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            jobQueueFocusGained(evt);
        }
    });
    tblJobQueueRunning.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseReleased(java.awt.event.MouseEvent evt) {
            tblJobQueueRunningMouseReleased(evt);
        }
    });
    scrlJobQueueRunning.setViewportView(tblJobQueueRunning);

    org.jdesktop.layout.GroupLayout pnlJobQueueRunningLayout = new org.jdesktop.layout.GroupLayout(
            pnlJobQueueRunning);
    pnlJobQueueRunning.setLayout(pnlJobQueueRunningLayout);
    pnlJobQueueRunningLayout.setHorizontalGroup(
            pnlJobQueueRunningLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(
                    scrlJobQueueRunning, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE));
    pnlJobQueueRunningLayout.setVerticalGroup(
            pnlJobQueueRunningLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(
                    scrlJobQueueRunning, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 27, Short.MAX_VALUE));

    mspJobQueue.add(pnlJobQueueRunning);

    pnlJobQueuePending.setBorder(javax.swing.BorderFactory.createTitledBorder("Pending Jobs"));

    tblJobQueuePending
            .setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
    tblJobQueuePending.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            jobQueueFocusGained(evt);
        }
    });
    tblJobQueuePending.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseReleased(java.awt.event.MouseEvent evt) {
            tblJobQueuePendingMouseReleased(evt);
        }
    });
    scrlJobQueuePending.setViewportView(tblJobQueuePending);

    org.jdesktop.layout.GroupLayout pnlJobQueuePendingLayout = new org.jdesktop.layout.GroupLayout(
            pnlJobQueuePending);
    pnlJobQueuePending.setLayout(pnlJobQueuePendingLayout);
    pnlJobQueuePendingLayout.setHorizontalGroup(
            pnlJobQueuePendingLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(
                    scrlJobQueuePending, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE));
    pnlJobQueuePendingLayout.setVerticalGroup(
            pnlJobQueuePendingLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(
                    scrlJobQueuePending, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 27, Short.MAX_VALUE));

    mspJobQueue.add(pnlJobQueuePending);

    pnlJobQueueFailed.setBorder(javax.swing.BorderFactory.createTitledBorder("Failed Jobs"));

    tblJobQueueFailed
            .setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
    tblJobQueueFailed.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            jobQueueFocusGained(evt);
        }
    });
    tblJobQueueFailed.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseReleased(java.awt.event.MouseEvent evt) {
            tblJobQueueFailedMouseReleased(evt);
        }
    });
    scrlJobQueueFailed.setViewportView(tblJobQueueFailed);

    org.jdesktop.layout.GroupLayout pnlJobQueueFailedLayout = new org.jdesktop.layout.GroupLayout(
            pnlJobQueueFailed);
    pnlJobQueueFailed.setLayout(pnlJobQueueFailedLayout);
    pnlJobQueueFailedLayout.setHorizontalGroup(
            pnlJobQueueFailedLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(
                    scrlJobQueueFailed, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE));
    pnlJobQueueFailedLayout.setVerticalGroup(
            pnlJobQueueFailedLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(
                    scrlJobQueueFailed, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 27, Short.MAX_VALUE));

    mspJobQueue.add(pnlJobQueueFailed);

    pnlJobQueueDeposited.setBorder(javax.swing.BorderFactory.createTitledBorder("Deposited Jobs"));

    tblJobQueueDeposited
            .setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
    tblJobQueueDeposited.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            jobQueueFocusGained(evt);
        }
    });
    tblJobQueueDeposited.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseReleased(java.awt.event.MouseEvent evt) {
            tblJobQueueDepositedMouseReleased(evt);
        }
    });
    scrlJobQueueDeposited.setViewportView(tblJobQueueDeposited);

    org.jdesktop.layout.GroupLayout pnlJobQueueDepositedLayout = new org.jdesktop.layout.GroupLayout(
            pnlJobQueueDeposited);
    pnlJobQueueDeposited.setLayout(pnlJobQueueDepositedLayout);
    pnlJobQueueDepositedLayout.setHorizontalGroup(
            pnlJobQueueDepositedLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(
                    scrlJobQueueDeposited, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE));
    pnlJobQueueDepositedLayout.setVerticalGroup(
            pnlJobQueueDepositedLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(
                    scrlJobQueueDeposited, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 27, Short.MAX_VALUE));

    mspJobQueue.add(pnlJobQueueDeposited);

    pnlJobQueueComplete.setBorder(javax.swing.BorderFactory.createTitledBorder("Complete Jobs"));

    tblJobQueueComplete
            .setModel(new javax.swing.table.DefaultTableModel(
                    new Object[][] { { null, null, null, null }, { null, null, null, null },
                            { null, null, null, null }, { null, null, null, null } },
                    new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
    tblJobQueueComplete.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            jobQueueFocusGained(evt);
        }
    });
    tblJobQueueComplete.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseReleased(java.awt.event.MouseEvent evt) {
            tblJobQueueCompleteMouseReleased(evt);
        }
    });
    scrlJobQueueComplete.setViewportView(tblJobQueueComplete);

    org.jdesktop.layout.GroupLayout pnlJobQueueCompleteLayout = new org.jdesktop.layout.GroupLayout(
            pnlJobQueueComplete);
    pnlJobQueueComplete.setLayout(pnlJobQueueCompleteLayout);
    pnlJobQueueCompleteLayout.setHorizontalGroup(
            pnlJobQueueCompleteLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(
                    scrlJobQueueComplete, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE));
    pnlJobQueueCompleteLayout.setVerticalGroup(
            pnlJobQueueCompleteLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(
                    scrlJobQueueComplete, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 27, Short.MAX_VALUE));

    mspJobQueue.add(pnlJobQueueComplete);

    org.jdesktop.layout.GroupLayout pnlJobQueueLayout = new org.jdesktop.layout.GroupLayout(pnlJobQueue);
    pnlJobQueue.setLayout(pnlJobQueueLayout);
    pnlJobQueueLayout.setHorizontalGroup(pnlJobQueueLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlJobQueueLayout.createSequentialGroup().addContainerGap()
                    .add(mspJobQueue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 803, Short.MAX_VALUE)
                    .addContainerGap()));
    pnlJobQueueLayout.setVerticalGroup(pnlJobQueueLayout
            .createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pnlJobQueueLayout.createSequentialGroup().addContainerGap()
                    .add(mspJobQueue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 609, Short.MAX_VALUE)
                    .addContainerGap()));

    tabMain.addTab("Job Queue", pnlJobQueue);

    org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(tabMain));
    layout.setVerticalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(tabMain));

    pack();
}

From source file:com.mirth.connect.client.ui.Frame.java

public synchronized void updateAcceleratorKeyPressed(InputEvent e) {
    this.acceleratorKeyPressed = (((e.getModifiers()
            & Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()) > 0)
            || ((e.getModifiers() & InputEvent.CTRL_MASK) > 0)
            || ((e.getModifiers() & InputEvent.ALT_MASK) > 0));
}

From source file:org.planetcrypto.bitcoin.PlanetCryptoBitcoinUI.java

/**
 * 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.//from  ww  w. j  av a2s.  com
 */
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
    bindingGroup = new org.jdesktop.beansbinding.BindingGroup();

    MainTabbedPane = new javax.swing.JTabbedPane();
    MinerInformationPanel = new javax.swing.JPanel();
    MinerInformationTabbedPane = new javax.swing.JTabbedPane();
    InformationPanel = new javax.swing.JPanel();
    MinerSelectionBox = new javax.swing.JComboBox();
    MinerSelectionBoxLabel = new javax.swing.JLabel();
    InformationMinerIPLabel = new javax.swing.JLabel();
    InformationMinerIPTextField = new javax.swing.JTextField();
    InformationMinerPortLabel = new javax.swing.JLabel();
    InformationMinerPortTextField = new javax.swing.JTextField();
    PrivilegedLabel = new javax.swing.JLabel();
    ASICsLabel = new javax.swing.JLabel();
    PrivilegedTextField = new javax.swing.JTextField();
    ASICsTextField = new javax.swing.JTextField();
    PGAsLabel = new javax.swing.JLabel();
    PGAsTextField = new javax.swing.JTextField();
    PoolCountLabel = new javax.swing.JLabel();
    PoolCountTextField = new javax.swing.JTextField();
    MinerVersionLabel = new javax.swing.JLabel();
    MinerVersionTextField = new javax.swing.JTextField();
    MinerStrategyLabel = new javax.swing.JLabel();
    MinerStrategyTextField = new javax.swing.JTextField();
    ACSChain1Label = new javax.swing.JLabel();
    ACSChain1TextField = new javax.swing.JTextField();
    ACSChain2Label = new javax.swing.JLabel();
    ACSChain3Label = new javax.swing.JLabel();
    ACSChain4Label = new javax.swing.JLabel();
    ACSChain2TextField = new javax.swing.JTextField();
    ACSChain3TextField = new javax.swing.JTextField();
    ACSChain4TextField = new javax.swing.JTextField();
    BytesSentLabel = new javax.swing.JLabel();
    BytesRecvLabel = new javax.swing.JLabel();
    BytesSentTextField = new javax.swing.JTextField();
    BytesRecvTextField = new javax.swing.JTextField();
    HWErrorPercentLabel = new javax.swing.JLabel();
    HWErrorPercentageTextField = new javax.swing.JTextField();
    HWErrorsLabel = new javax.swing.JLabel();
    HWErrorsTextField = new javax.swing.JTextField();
    ACSChainInformationLabel = new javax.swing.JLabel();
    MinerGenericInformationRefreshButton = new javax.swing.JButton();
    MinerHashRatesPanel = new javax.swing.JPanel();
    HashRatesCurrentMiner = new javax.swing.JLabel();
    MinerCurrentHashLabel = new javax.swing.JLabel();
    MinerCurrentHashTextField = new javax.swing.JTextField();
    MinerAverageHashLabel = new javax.swing.JLabel();
    MinerAverageHashTextField = new javax.swing.JTextField();
    MinerFoundBlocksLabel = new javax.swing.JLabel();
    MinerAcceptedLabel = new javax.swing.JLabel();
    MinerRejectedLabel = new javax.swing.JLabel();
    MinerBestShareLabel = new javax.swing.JLabel();
    MinerNetworkBlocksLabel = new javax.swing.JLabel();
    MinerFoundBlocksTextField = new javax.swing.JTextField();
    MinerAcceptedTextField = new javax.swing.JTextField();
    MinerRejectedTextField = new javax.swing.JTextField();
    MinerBestShareTextField = new javax.swing.JTextField();
    MinerNetworkBlocksTextField = new javax.swing.JTextField();
    MinerSelectionBox1 = new javax.swing.JComboBox();
    MinerHashRatesRefreshButton = new javax.swing.JButton();
    MinerTemperaturePanel = new javax.swing.JPanel();
    TemperatureCurrentMinerLabel = new javax.swing.JLabel();
    MinerTemp1Label = new javax.swing.JLabel();
    MinerTemp2Label = new javax.swing.JLabel();
    MinerTemp3Label = new javax.swing.JLabel();
    MinerTemp4Label = new javax.swing.JLabel();
    MinerTempAvgLabel = new javax.swing.JLabel();
    MinerTempMaxLabel = new javax.swing.JLabel();
    MinerTemp1TextField = new javax.swing.JTextField();
    MinerTemp2TextField = new javax.swing.JTextField();
    MinerTemp3TextField = new javax.swing.JTextField();
    MinerTemp4TextField = new javax.swing.JTextField();
    MinerTempAvgTextField = new javax.swing.JTextField();
    MinerTextMaxTextField = new javax.swing.JTextField();
    MinerSelectionBox2 = new javax.swing.JComboBox();
    MinerTemperaturesRefreshButton = new javax.swing.JButton();
    MinerFansPanel = new javax.swing.JPanel();
    FansCurrentMinerLabel = new javax.swing.JLabel();
    MinerFan1Label = new javax.swing.JLabel();
    MinerFan2Label = new javax.swing.JLabel();
    MinerFan3Label = new javax.swing.JLabel();
    MinerFan4Label = new javax.swing.JLabel();
    MinerFan1TextField = new javax.swing.JTextField();
    MinerFan2TextField = new javax.swing.JTextField();
    MinerFan3TextField = new javax.swing.JTextField();
    MinerFan4TextField = new javax.swing.JTextField();
    MinerSelectionBox3 = new javax.swing.JComboBox();
    MinerFanSpeedsRefreshButton = new javax.swing.JButton();
    CustomAPICommandPanel = new javax.swing.JPanel();
    CustomAPICommandCurrentMiner = new javax.swing.JLabel();
    CustomCommandEntryLabel = new javax.swing.JLabel();
    CustomCommandEntryTextField = new javax.swing.JTextField();
    CustomCommandOutputScrollPane = new javax.swing.JScrollPane();
    CustomCommandOutputTextArea = new javax.swing.JTextArea();
    CustomCommandOutputLabel = new javax.swing.JLabel();
    CustomCommandSubmitButton = new javax.swing.JButton();
    CustomCommandJsonCheckBox = new javax.swing.JCheckBox();
    CustomCommandMinerSelectionBox = new javax.swing.JComboBox();
    MinerVitalsPanel = new javax.swing.JPanel();
    jScrollPane2 = new javax.swing.JScrollPane();
    MinerVitalStatsTextPane = new javax.swing.JTextPane();
    jLabel1 = new javax.swing.JLabel();
    VitalStatsRefreshButton = new javax.swing.JButton();
    BTCInformationPane = new javax.swing.JPanel();
    BitcoinInformationTabbedPane = new javax.swing.JTabbedPane();
    BTCGenericInformationPanel = new javax.swing.JPanel();
    BTCConversionRateLabel = new javax.swing.JLabel();
    NetworkDifficultyLabel = new javax.swing.JLabel();
    EstimatedPayoutLabel = new javax.swing.JLabel();
    NetworkDifficultyTextField = new javax.swing.JTextField();
    BTCConversionRateTextField = new javax.swing.JTextField();
    EstimatedPayoutTextField = new javax.swing.JTextField();
    CurrentBlockHashLabel = new javax.swing.JLabel();
    CurrentBlockHashTextField = new javax.swing.JTextField();
    CurrentBlockTimeLabel = new javax.swing.JLabel();
    CurrentBlockTimeTextField = new javax.swing.JTextField();
    GenericInformationCurrentMinerLabel = new javax.swing.JLabel();
    MinerSelectionBox5 = new javax.swing.JComboBox();
    BitcoinInformationRefreshButton = new javax.swing.JButton();
    GenericInformationCoinbaseUserLabel = new javax.swing.JLabel();
    GenericInformationCoinbaseUserSelectionBox = new javax.swing.JComboBox();
    GenericInformationAbbreviatedPreferredCurrencyLabel = new javax.swing.JLabel();
    GenericInformationAbbreviatedPreferredCurrencyLabel2 = new javax.swing.JLabel();
    CoinbaseAPIPanel = new javax.swing.JPanel();
    CoinbaseAPILabel = new javax.swing.JLabel();
    CoinbaseAPICurrentUserLabel = new javax.swing.JLabel();
    CoinbaseAPIUserSelectionBox = new javax.swing.JComboBox();
    EligiusPoolInformationPanel = new javax.swing.JPanel();
    EligiusStatusLabel = new javax.swing.JLabel();
    EligiusHashRateInformationScrollPane = new javax.swing.JScrollPane();
    EligiusHashRateInformationTable = new javax.swing.JTable();
    EligiusPayoutInformationPayoutScrollPane = new javax.swing.JScrollPane();
    EligiusPayoutInformationTable = new javax.swing.JTable();
    EligiusPoolInformationRefreshButton = new javax.swing.JButton();
    EligiusPayoutKeyInformationScrollPane = new javax.swing.JScrollPane();
    EligiousPayoutKeyInformationTextPane = new javax.swing.JTextPane();
    EligiusUsernameSelectionBox = new javax.swing.JComboBox();
    EligiusUsernameClipboardCopyButton = new javax.swing.JButton();
    EligiusPoolCurrentUsernameLabel = new javax.swing.JLabel();
    EligiusOpenBrowserButton = new javax.swing.JButton();
    ConfigurationPanel = new javax.swing.JPanel();
    ConfigurationTabbedPane = new javax.swing.JTabbedPane();
    MinerConfigurationPanel = new javax.swing.JPanel();
    ConfigurationPromptLabel = new javax.swing.JLabel();
    ConfigurationRemoveMinerButton = new javax.swing.JButton();
    ConfigurationAddMinerButton = new javax.swing.JButton();
    ConfigurationAddMinerNameLabel = new javax.swing.JLabel();
    ConfigurationAddMinerNameTextField = new javax.swing.JTextField();
    ConfigurationAddMinerIPLabel = new javax.swing.JLabel();
    ConfigurationAddMinerIPTextField = new javax.swing.JTextField();
    ConfigurationMinerPortLabel = new javax.swing.JLabel();
    ConfigurationMinerPortTextField = new javax.swing.JTextField();
    ConfigurationAddMinersLabel = new javax.swing.JLabel();
    ConfigurationRemoveMinersLabel = new javax.swing.JLabel();
    ConfigurationRemoveMinerNameLabel = new javax.swing.JLabel();
    ConfigurationRemoveMinerNameTextField = new javax.swing.JTextField();
    ConfigurationCurrentMinersLabel = new javax.swing.JLabel();
    ConfigurationRemoveMinerIPLabel = new javax.swing.JLabel();
    ConfigurationRemoveMinerIPTextField = new javax.swing.JTextField();
    ConfigurationResolveHostAddressLabel = new javax.swing.JLabel();
    ConfigurationResolveHostAddressTextField = new javax.swing.JTextField();
    ConfigurationResolveHostAddressButton = new javax.swing.JButton();
    ConfigurationCurrentMinersScrollPane = new javax.swing.JScrollPane();
    ConfigurationCurrentMinersTextPane = new javax.swing.JTextPane();
    ConfigurationAlarmPanel = new javax.swing.JPanel();
    ConfigurationAlarmSettingsPromptLabel = new javax.swing.JLabel();
    ConfigurationMinerTemperatureAlarmLabel = new javax.swing.JLabel();
    ConfigurationMinerFanSpeedAlarmLabel = new javax.swing.JLabel();
    ConfigurationMinerHashRateAlarmLabel = new javax.swing.JLabel();
    MinerSelectionForAlarmsBox = new javax.swing.JComboBox();
    AlarmsCurrentMinerLabel = new javax.swing.JLabel();
    ConfigurationAlarmsHWErrPercentLabel = new javax.swing.JLabel();
    ConfigurationMinerTempAlarmTextField = new javax.swing.JTextField();
    ConfigurationFanSpeedAlarmTextField = new javax.swing.JTextField();
    ConfigurationMinerHashRateAlarmTextField = new javax.swing.JTextField();
    ConfigurationMinerHardwareErrPercentAlarmTextField = new javax.swing.JTextField();
    ConfigurationDegreesCelsiusLabel = new javax.swing.JLabel();
    ConfigurationFanRPMLabel = new javax.swing.JLabel();
    ConfigurationHashRatePostfixComboBox = new javax.swing.JComboBox();
    ConfigurationHWErrorPercentLabel = new javax.swing.JLabel();
    ConfigurationMinerTempAlarmUpdateButton = new javax.swing.JButton();
    ConfigurationMinerFanSpeedAlarmUpdateButton = new javax.swing.JButton();
    ConfigurationMinerHashRateAlarmUpdateButton = new javax.swing.JButton();
    ConfigurationMinerHardwareErrPercentAlarmUpdateButton = new javax.swing.JButton();
    ConfigurationCurrentMinerAlarmsScrollPane = new javax.swing.JScrollPane();
    ConfigurationCurrentMinerAlarmsTextPane = new javax.swing.JTextPane();
    ConfigurationCurrentMinerAlarmsLabel = new javax.swing.JLabel();
    ConfigurationEligiusPoolsPanel = new javax.swing.JPanel();
    ConfigurationEligiusLabel = new javax.swing.JLabel();
    ConfigurationMiningPoolPromptLabel = new javax.swing.JLabel();
    ConfigurationEligiusUsernameLabel = new javax.swing.JLabel();
    ConfigurationEligiusUsernameTextField = new javax.swing.JTextField();
    ConfigurationEligiusHelpPromptLabel = new javax.swing.JLabel();
    ConfigurationEligiusUsernameAddButton = new javax.swing.JButton();
    ConfigurationEligiusUsernameRemoveButton = new javax.swing.JButton();
    ConfigurationEligiusExampleLabel = new javax.swing.JLabel();
    ConfigurationCoinExchangePanel = new javax.swing.JPanel();
    ConfigurationCoinbaseLabel = new javax.swing.JLabel();
    ConfigurationCoinbaseCurrencyLabel = new javax.swing.JLabel();
    ConfigurationCoinbaseCurrencyComboBox = new javax.swing.JComboBox();
    CoinbaseConfigurationSeparator = new javax.swing.JSeparator();
    CoinbaseInformationLabel = new javax.swing.JLabel();
    CoinbaseUsernameLabel = new javax.swing.JLabel();
    CoinbaseAPIUsernameTextField = new javax.swing.JTextField();
    CoinbaseAPIKeyLabel = new javax.swing.JLabel();
    CoinbaseAPIKeyTextField = new javax.swing.JTextField();
    CoinbaseAPISecretKeyLabel = new javax.swing.JLabel();
    CoinbaseAPISecretKeyTextField = new javax.swing.JTextField();
    AddCoinbaseUsernameButton = new javax.swing.JButton();
    RemoveCoinbaseUsernameButton = new javax.swing.JButton();
    CurrentCoinbaseConfigurationLabel = new javax.swing.JLabel();
    CoinbaseConfigurationSeparator1 = new javax.swing.JSeparator();
    CurrentCoinbaseConfigurationScrollPane = new javax.swing.JScrollPane();
    CurrentCoinbaseConfigurationTextPane = new javax.swing.JTextPane();
    CoinbaseConfigurationVerticalSeparator = new javax.swing.JSeparator();
    CoinbaseConfigurationInstructionsScrollPane = new javax.swing.JScrollPane();
    CoinbaseConfigurationInstructionsTextPane = new javax.swing.JTextPane();
    CoinbaseConfigurationInstructionsLabel = new javax.swing.JLabel();
    BFGMInerUIMenuBar = new javax.swing.JMenuBar();
    FileMenu = new javax.swing.JMenu();
    FileExitMenuItem = new javax.swing.JMenuItem();
    EditMenu = new javax.swing.JMenu("Edit");
    CopyMenuItem = new javax.swing.JMenuItem(new DefaultEditorKit.CopyAction());
    PasteMenuItem = new javax.swing.JMenuItem(new DefaultEditorKit.PasteAction());
    HelpMenu = new javax.swing.JMenu();
    AppHelpMenuItem = new javax.swing.JMenuItem();
    AboutMenuItem = new javax.swing.JMenuItem();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle("PlanetCrypto Bitcoin");
    setBackground(new java.awt.Color(204, 255, 255));

    MainTabbedPane.setToolTipText("");
    MainTabbedPane.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MainTabbedPane.setName(""); // NOI18N

    MinerInformationTabbedPane.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N

    ArrayList<String> miners = new ArrayList<>();
    existing_miners = currentMiners();
    //jComboBox1.
    if (existing_miners.get(0) == null) {
        miners.add("No Miners");
    } else {
        for (int i = 0; i < existing_miners.size(); i++) {
            miners.add(existing_miners.get(i).get("name"));
        }
    }
    MinerSelectionBox.setModel(new javax.swing.DefaultComboBoxModel(miners.toArray()));
    MinerSelectionBox.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            MinerSelectionBoxActionPerformed(evt);
        }
    });
    MinerSelectionBoxActionPerformed(null);

    MinerSelectionBoxLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerSelectionBoxLabel.setText("Current Miner:");

    InformationMinerIPLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    InformationMinerIPLabel.setText("Miner IP:");

    /*
    if (existing_miners.get(MinerSelectionBox.getSelectedIndex()).get("name").equals("None")) {
    InformationMinerIPTextField.setText("None");
    } else {
    InformationMinerIPTextField.setText(existing_miners.get(MinerSelectionBox.getSelectedIndex()).get("ip"));
    }
    */
    InformationMinerIPTextField.setEditable(false);

    InformationMinerPortLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    InformationMinerPortLabel.setText("Miner Port:");

    InformationMinerPortTextField.setEditable(false);
    /*
    if (existing_miners.get(MinerSelectionBox.getSelectedIndex()) == null) {
    InformationMinerPortTextField.setText("None");
    } else {
    InformationMinerPortTextField.setText(existing_miners.get(MinerSelectionBox.getSelectedIndex()).get("port"));
    }
    */

    PrivilegedLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    PrivilegedLabel.setText("Privileged: ");

    ASICsLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ASICsLabel.setText("ASICs:");

    PrivilegedTextField.setEditable(false);
    /*
    if (existing_miners.get(MinerSelectionBox.getSelectedIndex()) ==null) {
    PrivilegedTextField.setText("None");
    } else {
    String privileged = api_Commands.parseArgs(existing_miners.get(MinerSelectionBox.getSelectedIndex()).get("ip"), existing_miners.get(MinerSelectionBox.getSelectedIndex()).get("port"), "privileged");
    String status = api_Commands.getKeys(privileged, "STATUS");
    if (status.equals("E")) {
        PrivilegedTextField.setText("False");
    } else {
        PrivilegedTextField.setText("True");
    }
    }
    */

    ASICsTextField.setEditable(false);

    PGAsLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    PGAsLabel.setText("PGAs:");

    PGAsTextField.setEditable(false);

    PoolCountLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    PoolCountLabel.setText("Pool Count:");

    PoolCountTextField.setEditable(false);

    MinerVersionLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerVersionLabel.setText("Version:");

    MinerVersionTextField.setEditable(false);

    MinerStrategyLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerStrategyLabel.setText("Strategy:");

    MinerStrategyTextField.setEditable(false);

    ACSChain1Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ACSChain1Label.setText("ACS Chain 1:");

    ACSChain1TextField.setEditable(false);

    ACSChain2Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ACSChain2Label.setText("ACS Chain 2:");

    ACSChain3Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ACSChain3Label.setText("ACS Chain 3:");

    ACSChain4Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ACSChain4Label.setText("ACS Chain 4:");

    ACSChain2TextField.setEditable(false);

    ACSChain3TextField.setEditable(false);

    ACSChain4TextField.setEditable(false);

    BytesSentLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    BytesSentLabel.setText("Bytes Sent:");

    BytesRecvLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    BytesRecvLabel.setText("Bytes Recv:");

    BytesSentTextField.setEditable(false);

    BytesRecvTextField.setEditable(false);

    HWErrorPercentLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    HWErrorPercentLabel.setText("HW Error  %:");

    HWErrorPercentageTextField.setEditable(false);

    HWErrorsLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    HWErrorsLabel.setText("HW Errors:");

    HWErrorsTextField.setEditable(false);

    ACSChainInformationLabel.setText("For ACS chains: x = Not Well; o = Well");

    MinerGenericInformationRefreshButton.setText("Refresh");
    MinerGenericInformationRefreshButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            MinerGenericInformationRefreshButtonActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout InformationPanelLayout = new javax.swing.GroupLayout(InformationPanel);
    InformationPanel.setLayout(InformationPanelLayout);
    InformationPanelLayout.setHorizontalGroup(InformationPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(InformationPanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(InformationPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(InformationPanelLayout.createSequentialGroup()
                                            .addComponent(ACSChainInformationLabel).addGap(51, 51, 51))
                                    .addGroup(InformationPanelLayout.createSequentialGroup()
                                            .addGroup(InformationPanelLayout
                                                    .createParallelGroup(
                                                            javax.swing.GroupLayout.Alignment.TRAILING)
                                                    .addGroup(InformationPanelLayout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                            .addComponent(MinerSelectionBoxLabel)
                                                            .addComponent(InformationMinerIPLabel)
                                                            .addComponent(ASICsLabel,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 53,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                            .addComponent(PGAsLabel)
                                                            .addComponent(PoolCountLabel)
                                                            .addComponent(MinerVersionLabel))
                                                    .addComponent(PrivilegedLabel,
                                                            javax.swing.GroupLayout.Alignment.LEADING))
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addGroup(InformationPanelLayout
                                                    .createParallelGroup(
                                                            javax.swing.GroupLayout.Alignment.TRAILING, false)
                                                    .addComponent(ACSChain3TextField,
                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                    .addComponent(ACSChain2TextField,
                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                    .addComponent(ACSChain4TextField)
                                                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING,
                                                            InformationPanelLayout.createSequentialGroup()
                                                                    .addGroup(InformationPanelLayout
                                                                            .createParallelGroup(
                                                                                    javax.swing.GroupLayout.Alignment.TRAILING,
                                                                                    false)
                                                                            .addComponent(MinerVersionTextField,
                                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addComponent(
                                                                                    InformationMinerIPTextField,
                                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addComponent(PrivilegedTextField,
                                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    173, Short.MAX_VALUE)
                                                                            .addComponent(ASICsTextField,
                                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addComponent(PGAsTextField,
                                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addComponent(PoolCountTextField,
                                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addComponent(MinerSelectionBox,
                                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                                    0,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    Short.MAX_VALUE))
                                                                    .addGroup(InformationPanelLayout
                                                                            .createParallelGroup(
                                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addGroup(InformationPanelLayout
                                                                                    .createSequentialGroup()
                                                                                    .addPreferredGap(
                                                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                                                    .addGroup(
                                                                                            InformationPanelLayout
                                                                                                    .createParallelGroup(
                                                                                                            javax.swing.GroupLayout.Alignment.LEADING,
                                                                                                            false)
                                                                                                    .addGroup(
                                                                                                            InformationPanelLayout
                                                                                                                    .createSequentialGroup()
                                                                                                                    .addGroup(
                                                                                                                            InformationPanelLayout
                                                                                                                                    .createParallelGroup(
                                                                                                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                                                                                                    .addComponent(
                                                                                                                                            BytesRecvLabel)
                                                                                                                                    .addComponent(
                                                                                                                                            HWErrorPercentLabel)
                                                                                                                                    .addComponent(
                                                                                                                                            HWErrorsLabel)
                                                                                                                                    .addComponent(
                                                                                                                                            MinerStrategyLabel))
                                                                                                                    .addGap(18,
                                                                                                                            18,
                                                                                                                            18)
                                                                                                                    .addGroup(
                                                                                                                            InformationPanelLayout
                                                                                                                                    .createParallelGroup(
                                                                                                                                            javax.swing.GroupLayout.Alignment.LEADING,
                                                                                                                                            false)
                                                                                                                                    .addComponent(
                                                                                                                                            HWErrorsTextField,
                                                                                                                                            javax.swing.GroupLayout.Alignment.TRAILING)
                                                                                                                                    .addComponent(
                                                                                                                                            HWErrorPercentageTextField)
                                                                                                                                    .addComponent(
                                                                                                                                            BytesRecvTextField)
                                                                                                                                    .addComponent(
                                                                                                                                            MinerStrategyTextField,
                                                                                                                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                                                                            172,
                                                                                                                                            javax.swing.GroupLayout.PREFERRED_SIZE)))
                                                                                                    .addGroup(
                                                                                                            InformationPanelLayout
                                                                                                                    .createSequentialGroup()
                                                                                                                    .addGroup(
                                                                                                                            InformationPanelLayout
                                                                                                                                    .createParallelGroup(
                                                                                                                                            javax.swing.GroupLayout.Alignment.LEADING,
                                                                                                                                            false)
                                                                                                                                    .addComponent(
                                                                                                                                            InformationMinerPortLabel,
                                                                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                                                                            89,
                                                                                                                                            Short.MAX_VALUE)
                                                                                                                                    .addComponent(
                                                                                                                                            BytesSentLabel,
                                                                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                                                                            Short.MAX_VALUE))
                                                                                                                    .addGap(18,
                                                                                                                            18,
                                                                                                                            18)
                                                                                                                    .addGroup(
                                                                                                                            InformationPanelLayout
                                                                                                                                    .createParallelGroup(
                                                                                                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                                                                                                    .addComponent(
                                                                                                                                            BytesSentTextField)
                                                                                                                                    .addComponent(
                                                                                                                                            InformationMinerPortTextField)))))
                                                                            .addGroup(InformationPanelLayout
                                                                                    .createSequentialGroup()
                                                                                    .addGap(31, 31, 31)
                                                                                    .addComponent(
                                                                                            MinerGenericInformationRefreshButton))))
                                                    .addComponent(ACSChain1TextField,
                                                            javax.swing.GroupLayout.Alignment.LEADING,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 458,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addGap(41, 41, 41)))
                            .addComponent(ACSChain1Label).addComponent(ACSChain2Label)
                            .addComponent(ACSChain3Label).addComponent(ACSChain4Label))));
    InformationPanelLayout.setVerticalGroup(InformationPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(InformationPanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(MinerSelectionBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(MinerSelectionBoxLabel)
                            .addComponent(MinerGenericInformationRefreshButton))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(InformationMinerIPLabel)
                            .addComponent(InformationMinerIPTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(InformationMinerPortLabel).addComponent(InformationMinerPortTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(PrivilegedLabel).addComponent(BytesSentLabel)
                            .addComponent(BytesSentTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(PrivilegedTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ASICsLabel)
                            .addComponent(ASICsTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(BytesRecvLabel)
                            .addComponent(BytesRecvTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(PGAsLabel)
                            .addComponent(PGAsTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(HWErrorsLabel)
                            .addComponent(HWErrorsTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(PoolCountLabel)
                            .addComponent(PoolCountTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(HWErrorPercentLabel).addComponent(HWErrorPercentageTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(MinerVersionLabel)
                            .addComponent(MinerVersionTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(MinerStrategyLabel).addComponent(MinerStrategyTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ACSChain1Label).addComponent(ACSChain1TextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ACSChain2Label).addComponent(ACSChain2TextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ACSChain3Label).addComponent(ACSChain3TextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(InformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ACSChain4Label).addComponent(ACSChain4TextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(18, 18, 18).addComponent(ACSChainInformationLabel).addGap(41, 41, 41)));

    MinerInformationTabbedPane.addTab("Information", InformationPanel);

    MinerHashRatesPanel.add(MinerSelectionBox);

    HashRatesCurrentMiner.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    HashRatesCurrentMiner.setText("Current Miner:");

    MinerCurrentHashLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerCurrentHashLabel.setText("Current Hash:");

    MinerCurrentHashTextField.setEditable(false);

    MinerAverageHashLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerAverageHashLabel.setText("Average Hash:");

    MinerAverageHashTextField.setEditable(false);

    MinerFoundBlocksLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerFoundBlocksLabel.setText("Found Blocks:");

    MinerAcceptedLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerAcceptedLabel.setText("Accepted:");

    MinerRejectedLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerRejectedLabel.setText("Rejected:");

    MinerBestShareLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerBestShareLabel.setText("Best Share:");

    MinerNetworkBlocksLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerNetworkBlocksLabel.setText("Network Blocks:");

    MinerFoundBlocksTextField.setEditable(false);

    MinerAcceptedTextField.setEditable(false);

    MinerRejectedTextField.setEditable(false);

    MinerBestShareTextField.setEditable(false);

    MinerNetworkBlocksTextField.setEditable(false);

    MinerSelectionBox1.setModel(new javax.swing.DefaultComboBoxModel(miners.toArray()));

    org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
            org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, MinerSelectionBox,
            org.jdesktop.beansbinding.ELProperty.create("${selectedItem}"), MinerSelectionBox1,
            org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
    bindingGroup.addBinding(binding);

    MinerHashRatesRefreshButton.setText("Refresh");
    MinerHashRatesRefreshButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            MinerHashRatesRefreshButtonActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout MinerHashRatesPanelLayout = new javax.swing.GroupLayout(MinerHashRatesPanel);
    MinerHashRatesPanel.setLayout(MinerHashRatesPanelLayout);
    MinerHashRatesPanelLayout.setHorizontalGroup(MinerHashRatesPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(MinerHashRatesPanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(MinerHashRatesPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(HashRatesCurrentMiner).addComponent(MinerCurrentHashLabel)
                            .addComponent(MinerAverageHashLabel).addComponent(MinerFoundBlocksLabel)
                            .addComponent(MinerAcceptedLabel).addComponent(MinerRejectedLabel)
                            .addComponent(MinerBestShareLabel).addComponent(MinerNetworkBlocksLabel))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(MinerHashRatesPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(MinerHashRatesPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(MinerCurrentHashTextField)
                                    .addComponent(MinerAverageHashTextField)
                                    .addComponent(MinerFoundBlocksTextField)
                                    .addComponent(MinerAcceptedTextField).addComponent(MinerRejectedTextField)
                                    .addComponent(MinerBestShareTextField)
                                    .addComponent(MinerNetworkBlocksTextField,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE))
                            .addGroup(MinerHashRatesPanelLayout.createSequentialGroup()
                                    .addComponent(MinerSelectionBox1, javax.swing.GroupLayout.PREFERRED_SIZE,
                                            173, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(MinerHashRatesRefreshButton)))
                    .addContainerGap(440, Short.MAX_VALUE)));
    MinerHashRatesPanelLayout.setVerticalGroup(MinerHashRatesPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(MinerHashRatesPanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(MinerHashRatesPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(HashRatesCurrentMiner)
                            .addComponent(MinerSelectionBox1, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(MinerHashRatesRefreshButton))
                    .addGap(21, 21, 21)
                    .addGroup(MinerHashRatesPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(MinerCurrentHashLabel).addComponent(MinerCurrentHashTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(MinerHashRatesPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(MinerAverageHashLabel).addComponent(MinerAverageHashTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(MinerHashRatesPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(MinerFoundBlocksLabel).addComponent(MinerFoundBlocksTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(MinerHashRatesPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(MinerAcceptedLabel).addComponent(MinerAcceptedTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(MinerHashRatesPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(MinerRejectedLabel).addComponent(MinerRejectedTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(MinerHashRatesPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(MinerBestShareLabel).addComponent(MinerBestShareTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(MinerHashRatesPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(MinerNetworkBlocksLabel).addComponent(MinerNetworkBlocksTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

    MinerInformationTabbedPane.addTab("Hash Rates", MinerHashRatesPanel);

    TemperatureCurrentMinerLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    TemperatureCurrentMinerLabel.setText("Current Miner:");

    MinerTemp1Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerTemp1Label.setText("Temp 1:");

    MinerTemp2Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerTemp2Label.setText("Temp 2:");

    MinerTemp3Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerTemp3Label.setText("Temp 3:");

    MinerTemp4Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerTemp4Label.setText("Temp 4:");

    MinerTempAvgLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerTempAvgLabel.setText("Temp Avg:");

    MinerTempMaxLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerTempMaxLabel.setText("Temp Max");

    MinerTemp1TextField.setEditable(false);

    MinerTemp2TextField.setEditable(false);

    MinerTemp3TextField.setEditable(false);

    MinerTemp4TextField.setEditable(false);

    MinerTempAvgTextField.setEditable(false);

    MinerTextMaxTextField.setEditable(false);

    MinerSelectionBox2.setModel(new javax.swing.DefaultComboBoxModel(miners.toArray()));

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
            org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, MinerSelectionBox1,
            org.jdesktop.beansbinding.ELProperty.create("${selectedItem}"), MinerSelectionBox2,
            org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
    bindingGroup.addBinding(binding);

    MinerTemperaturesRefreshButton.setText("Refresh");
    MinerTemperaturesRefreshButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            MinerTemperaturesRefreshButtonActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout MinerTemperaturePanelLayout = new javax.swing.GroupLayout(MinerTemperaturePanel);
    MinerTemperaturePanel.setLayout(MinerTemperaturePanelLayout);
    MinerTemperaturePanelLayout.setHorizontalGroup(MinerTemperaturePanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(MinerTemperaturePanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(MinerTemperaturePanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(TemperatureCurrentMinerLabel).addComponent(MinerTemp1Label)
                            .addComponent(MinerTemp2Label).addComponent(MinerTemp3Label)
                            .addComponent(MinerTemp4Label).addComponent(MinerTempAvgLabel)
                            .addComponent(MinerTempMaxLabel))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(MinerTemperaturePanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(MinerTemperaturePanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(MinerTemp1TextField).addComponent(MinerTemp2TextField)
                                    .addComponent(MinerTemp3TextField).addComponent(MinerTemp4TextField)
                                    .addComponent(MinerTempAvgTextField).addComponent(MinerTextMaxTextField,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE))
                            .addGroup(MinerTemperaturePanelLayout.createSequentialGroup()
                                    .addComponent(MinerSelectionBox2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                            173, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(MinerTemperaturesRefreshButton)))
                    .addContainerGap(448, Short.MAX_VALUE)));
    MinerTemperaturePanelLayout.setVerticalGroup(
            MinerTemperaturePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(MinerTemperaturePanelLayout.createSequentialGroup().addContainerGap()
                            .addGroup(MinerTemperaturePanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(TemperatureCurrentMinerLabel)
                                    .addComponent(MinerSelectionBox2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(MinerTemperaturesRefreshButton))
                            .addGap(21, 21, 21)
                            .addGroup(MinerTemperaturePanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(MinerTemp1Label).addComponent(MinerTemp1TextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(MinerTemperaturePanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(MinerTemp2Label).addComponent(MinerTemp2TextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(MinerTemperaturePanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(MinerTemp3Label).addComponent(MinerTemp3TextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(MinerTemperaturePanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(MinerTemp4Label).addComponent(MinerTemp4TextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(MinerTemperaturePanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(MinerTempAvgLabel).addComponent(MinerTempAvgTextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(MinerTemperaturePanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(MinerTempMaxLabel).addComponent(MinerTextMaxTextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

    MinerInformationTabbedPane.addTab("Temperatures", MinerTemperaturePanel);

    FansCurrentMinerLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    FansCurrentMinerLabel.setText("Current Miner:");

    MinerFan1Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerFan1Label.setText("Fan 1:");

    MinerFan2Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerFan2Label.setText("Fan 2:");

    MinerFan3Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerFan3Label.setText("Fan 3:");

    MinerFan4Label.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    MinerFan4Label.setText("Fan 4:");

    MinerFan1TextField.setEditable(false);

    MinerFan2TextField.setEditable(false);

    MinerFan3TextField.setEditable(false);

    MinerFan4TextField.setEditable(false);

    MinerSelectionBox3.setModel(new javax.swing.DefaultComboBoxModel(miners.toArray()));

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
            org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, MinerSelectionBox2,
            org.jdesktop.beansbinding.ELProperty.create("${selectedItem}"), MinerSelectionBox3,
            org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
    bindingGroup.addBinding(binding);

    MinerFanSpeedsRefreshButton.setText("Refresh");
    MinerFanSpeedsRefreshButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            MinerFanSpeedsRefreshButtonActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout MinerFansPanelLayout = new javax.swing.GroupLayout(MinerFansPanel);
    MinerFansPanel.setLayout(MinerFansPanelLayout);
    MinerFansPanelLayout.setHorizontalGroup(MinerFansPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(MinerFansPanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(MinerFansPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(MinerFansPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(MinerFan3Label, javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(MinerFan2Label, javax.swing.GroupLayout.Alignment.TRAILING,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(MinerFan1Label, javax.swing.GroupLayout.Alignment.TRAILING,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(MinerFan4Label, javax.swing.GroupLayout.Alignment.TRAILING,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE))
                            .addComponent(FansCurrentMinerLabel))
                    .addGap(18, 18, 18)
                    .addGroup(MinerFansPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(MinerFansPanelLayout.createSequentialGroup()
                                    .addComponent(MinerSelectionBox3, javax.swing.GroupLayout.PREFERRED_SIZE,
                                            173, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(MinerFanSpeedsRefreshButton))
                            .addGroup(MinerFansPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(MinerFan4TextField, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(MinerFan3TextField, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(MinerFan2TextField, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(MinerFan1TextField, javax.swing.GroupLayout.Alignment.LEADING,
                                            javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)))
                    .addContainerGap(442, Short.MAX_VALUE)));
    MinerFansPanelLayout.setVerticalGroup(
            MinerFansPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(MinerFansPanelLayout.createSequentialGroup().addContainerGap()
                            .addGroup(MinerFansPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(FansCurrentMinerLabel)
                                    .addComponent(MinerSelectionBox3, javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(MinerFanSpeedsRefreshButton))
                            .addGap(21, 21, 21)
                            .addGroup(MinerFansPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(MinerFan1Label)
                                    .addComponent(MinerFan1TextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(MinerFansPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(MinerFan2TextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(MinerFan2Label))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(MinerFansPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(MinerFan3Label).addComponent(MinerFan3TextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(MinerFansPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(MinerFan4Label).addComponent(MinerFan4TextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

    MinerInformationTabbedPane.addTab("Fans", MinerFansPanel);

    CustomAPICommandCurrentMiner.setText("Current Miner:");

    CustomCommandEntryLabel.setText("Enter Custom Command:");

    CustomCommandOutputTextArea.setEditable(false);
    CustomCommandOutputTextArea.setColumns(20);
    CustomCommandOutputTextArea.setRows(5);
    CustomCommandOutputScrollPane.setViewportView(CustomCommandOutputTextArea);

    CustomCommandOutputLabel.setText("Output:");

    CustomCommandSubmitButton.setText("Submit");
    CustomCommandSubmitButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            CustomCommandSubmitButtonActionPerformed(evt);
        }
    });

    CustomCommandJsonCheckBox.setText("Check for JSON Output");
    CustomCommandJsonCheckBox.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            CustomCommandJsonCheckBoxKeyPressed(evt);
        }
    });

    CustomCommandMinerSelectionBox.setModel(new javax.swing.DefaultComboBoxModel(miners.toArray()));

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
            org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, MinerSelectionBox3,
            org.jdesktop.beansbinding.ELProperty.create("${selectedItem}"), CustomCommandMinerSelectionBox,
            org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
    bindingGroup.addBinding(binding);

    javax.swing.GroupLayout CustomAPICommandPanelLayout = new javax.swing.GroupLayout(CustomAPICommandPanel);
    CustomAPICommandPanel.setLayout(CustomAPICommandPanelLayout);
    CustomAPICommandPanelLayout.setHorizontalGroup(CustomAPICommandPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(CustomAPICommandPanelLayout.createSequentialGroup().addGap(22, 22, 22)
                    .addGroup(CustomAPICommandPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(CustomCommandOutputScrollPane).addComponent(CustomCommandOutputLabel)
                            .addGroup(CustomAPICommandPanelLayout.createSequentialGroup()
                                    .addComponent(CustomCommandEntryLabel)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addComponent(CustomCommandEntryTextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE, 121,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGap(18, 18, 18).addComponent(CustomCommandJsonCheckBox)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(CustomCommandSubmitButton))
                            .addGroup(CustomAPICommandPanelLayout.createSequentialGroup()
                                    .addComponent(CustomAPICommandCurrentMiner)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(CustomCommandMinerSelectionBox,
                                            javax.swing.GroupLayout.PREFERRED_SIZE, 173,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    CustomAPICommandPanelLayout.setVerticalGroup(CustomAPICommandPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(CustomAPICommandPanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(CustomAPICommandPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(CustomAPICommandCurrentMiner).addComponent(
                                    CustomCommandMinerSelectionBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(20, 20, 20)
                    .addGroup(CustomAPICommandPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(CustomCommandEntryLabel)
                            .addComponent(CustomCommandEntryTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(CustomCommandSubmitButton).addComponent(CustomCommandJsonCheckBox))
                    .addGap(18, 18, 18).addComponent(CustomCommandOutputLabel).addGap(7, 7, 7)
                    .addComponent(CustomCommandOutputScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 234,
                            javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

    MinerInformationTabbedPane.addTab("Custom Command", CustomAPICommandPanel);

    //System.out.println(existing_miners.toString());
    MinerVitalStatsTextPane.setContentType("text/html");
    MinerVitalStatsTextPane.setEditable(false);
    MinerVitalStatsTextPane.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
        public void propertyChange(java.beans.PropertyChangeEvent evt) {
            MinerVitalStatsTextPanePropertyChange(evt);
        }
    });
    jScrollPane2.setViewportView(MinerVitalStatsTextPane);

    jLabel1.setFont(new java.awt.Font("DejaVu Sans", 3, 14)); // NOI18N
    jLabel1.setText("Vital Miner Statistics");

    VitalStatsRefreshButton.setText("Refresh");
    VitalStatsRefreshButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            VitalStatsRefreshButtonActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout MinerVitalsPanelLayout = new javax.swing.GroupLayout(MinerVitalsPanel);
    MinerVitalsPanel.setLayout(MinerVitalsPanelLayout);
    MinerVitalsPanelLayout.setHorizontalGroup(
            MinerVitalsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(MinerVitalsPanelLayout.createSequentialGroup().addContainerGap()
                            .addGroup(MinerVitalsPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(MinerVitalsPanelLayout.createSequentialGroup()
                                            .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    645, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(VitalStatsRefreshButton))
                                    .addComponent(jLabel1))
                            .addContainerGap(93, Short.MAX_VALUE)));
    MinerVitalsPanelLayout.setVerticalGroup(MinerVitalsPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(MinerVitalsPanelLayout.createSequentialGroup().addGap(16, 16, 16).addComponent(jLabel1)
                    .addGap(18, 18, 18)
                    .addGroup(MinerVitalsPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 306,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(VitalStatsRefreshButton))
                    .addContainerGap(229, Short.MAX_VALUE)));

    MinerInformationTabbedPane.addTab("Vitals", MinerVitalsPanel);

    javax.swing.GroupLayout MinerInformationPanelLayout = new javax.swing.GroupLayout(MinerInformationPanel);
    MinerInformationPanel.setLayout(MinerInformationPanelLayout);
    MinerInformationPanelLayout.setHorizontalGroup(
            MinerInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(MinerInformationTabbedPane));
    MinerInformationPanelLayout.setVerticalGroup(
            MinerInformationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(MinerInformationPanelLayout.createSequentialGroup().addContainerGap()
                            .addComponent(MinerInformationTabbedPane, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    615, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

    MainTabbedPane.addTab("Miners", MinerInformationPanel);

    BTCConversionRateLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    BTCConversionRateLabel.setText("BTC Conversion Rate:");

    NetworkDifficultyLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    NetworkDifficultyLabel.setText("Network Difficulty:");

    EstimatedPayoutLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    EstimatedPayoutLabel.setText("Estimated Payout:");

    NetworkDifficultyTextField.setEditable(false);

    BTCConversionRateTextField.setEditable(false);
    BTCConversionRateTextField.setText("Not configured yet");

    EstimatedPayoutTextField.setEditable(false);

    CurrentBlockHashLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    CurrentBlockHashLabel.setText("Current Block Hash:");

    CurrentBlockHashTextField.setEditable(false);

    CurrentBlockTimeLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    CurrentBlockTimeLabel.setText("Current Block Time:");

    CurrentBlockTimeTextField.setEditable(false);

    GenericInformationCurrentMinerLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    GenericInformationCurrentMinerLabel.setText("Current Miner:");

    MinerSelectionBox5.setModel(new javax.swing.DefaultComboBoxModel(miners.toArray()));

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
            org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, CustomCommandMinerSelectionBox,
            org.jdesktop.beansbinding.ELProperty.create("${selectedItem}"), MinerSelectionBox5,
            org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
    bindingGroup.addBinding(binding);

    BitcoinInformationRefreshButton.setText("Refresh");
    BitcoinInformationRefreshButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            BitcoinInformationRefreshButtonActionPerformed(evt);
        }
    });

    GenericInformationCoinbaseUserLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    GenericInformationCoinbaseUserLabel.setText("Current Coinbase User:");

    existing_coinbase = currentCoinbase();
    ;
    ArrayList<String> coinbase_users = new ArrayList<>();
    if (existing_coinbase == null) {
        coinbase_users.add("No Users");
    } else {
        for (int i = 0; i < existing_coinbase.size(); i++) {
            coinbase_users.add(existing_coinbase.get(i).get("email"));
        }
    }
    GenericInformationCoinbaseUserSelectionBox
            .setModel(new javax.swing.DefaultComboBoxModel(coinbase_users.toArray()));
    GenericInformationCoinbaseUserSelectionBox.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            GenericInformationCoinbaseUserSelectionBoxActionPerformed(evt);
        }
    });

    GenericInformationAbbreviatedPreferredCurrencyLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    GenericInformationAbbreviatedPreferredCurrencyLabel
            .addPropertyChangeListener(new java.beans.PropertyChangeListener() {
                public void propertyChange(java.beans.PropertyChangeEvent evt) {
                    GenericInformationAbbreviatedPreferredCurrencyLabelPropertyChange(evt);
                }
            });

    GenericInformationAbbreviatedPreferredCurrencyLabel2.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
            org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,
            GenericInformationAbbreviatedPreferredCurrencyLabel,
            org.jdesktop.beansbinding.ELProperty.create("${text}"),
            GenericInformationAbbreviatedPreferredCurrencyLabel2,
            org.jdesktop.beansbinding.BeanProperty.create("text"));
    bindingGroup.addBinding(binding);

    javax.swing.GroupLayout BTCGenericInformationPanelLayout = new javax.swing.GroupLayout(
            BTCGenericInformationPanel);
    BTCGenericInformationPanel.setLayout(BTCGenericInformationPanelLayout);
    BTCGenericInformationPanelLayout.setHorizontalGroup(BTCGenericInformationPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(BTCGenericInformationPanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(BTCGenericInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(EstimatedPayoutLabel).addComponent(BTCConversionRateLabel)
                            .addComponent(NetworkDifficultyLabel).addComponent(CurrentBlockHashLabel)
                            .addComponent(GenericInformationCurrentMinerLabel)
                            .addComponent(CurrentBlockTimeLabel)
                            .addComponent(GenericInformationCoinbaseUserLabel))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(BTCGenericInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(BTCGenericInformationPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(CurrentBlockHashTextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE, 559,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(BTCGenericInformationPanelLayout.createSequentialGroup()
                                            .addComponent(MinerSelectionBox5,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 173,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(BitcoinInformationRefreshButton))
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                            BTCGenericInformationPanelLayout.createSequentialGroup()
                                                    .addGroup(BTCGenericInformationPanelLayout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.TRAILING)
                                                            .addComponent(EstimatedPayoutTextField,
                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                            .addComponent(BTCConversionRateTextField))
                                                    .addPreferredGap(
                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                    .addGroup(BTCGenericInformationPanelLayout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                    false)
                                                            .addComponent(
                                                                    GenericInformationAbbreviatedPreferredCurrencyLabel,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    Short.MAX_VALUE)
                                                            .addComponent(
                                                                    GenericInformationAbbreviatedPreferredCurrencyLabel2,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE, 89,
                                                                    Short.MAX_VALUE))
                                                    .addGap(184, 184, 184))
                                    .addComponent(NetworkDifficultyTextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE, 280,
                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(CurrentBlockTimeTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    280, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(GenericInformationCoinbaseUserSelectionBox,
                                    javax.swing.GroupLayout.PREFERRED_SIZE, 255,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addContainerGap()));
    BTCGenericInformationPanelLayout.setVerticalGroup(BTCGenericInformationPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(BTCGenericInformationPanelLayout.createSequentialGroup().addGap(3, 3, 3)
                    .addGroup(BTCGenericInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(GenericInformationCurrentMinerLabel)
                            .addComponent(MinerSelectionBox5, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(BitcoinInformationRefreshButton))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(BTCGenericInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(GenericInformationCoinbaseUserLabel)
                            .addComponent(GenericInformationCoinbaseUserSelectionBox,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(7, 7, 7)
                    .addGroup(BTCGenericInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(NetworkDifficultyTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(NetworkDifficultyLabel))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(BTCGenericInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(CurrentBlockHashTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(CurrentBlockHashLabel))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(BTCGenericInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(CurrentBlockTimeTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(CurrentBlockTimeLabel))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(BTCGenericInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(BTCConversionRateTextField, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(BTCConversionRateLabel)
                            .addComponent(GenericInformationAbbreviatedPreferredCurrencyLabel,
                                    javax.swing.GroupLayout.PREFERRED_SIZE, 27,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(BTCGenericInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(GenericInformationAbbreviatedPreferredCurrencyLabel2,
                                    javax.swing.GroupLayout.Alignment.TRAILING,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                                    Short.MAX_VALUE)
                            .addGroup(BTCGenericInformationPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(EstimatedPayoutLabel).addComponent(EstimatedPayoutTextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGap(372, 372, 372)));

    BitcoinInformationTabbedPane.addTab("Generic Information", BTCGenericInformationPanel);

    CoinbaseAPILabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N
    CoinbaseAPILabel.setText("Buy, Sell, Trade BTC Here");

    CoinbaseAPICurrentUserLabel.setText("Current Coinbase User");

    CoinbaseAPIUserSelectionBox.setModel(new javax.swing.DefaultComboBoxModel(existingCoinbase().toArray()));

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
            org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,
            GenericInformationCoinbaseUserSelectionBox,
            org.jdesktop.beansbinding.ELProperty.create("${selectedItem}"), CoinbaseAPIUserSelectionBox,
            org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
    bindingGroup.addBinding(binding);

    javax.swing.GroupLayout CoinbaseAPIPanelLayout = new javax.swing.GroupLayout(CoinbaseAPIPanel);
    CoinbaseAPIPanel.setLayout(CoinbaseAPIPanelLayout);
    CoinbaseAPIPanelLayout.setHorizontalGroup(
            CoinbaseAPIPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(CoinbaseAPIPanelLayout.createSequentialGroup().addContainerGap()
                            .addGroup(CoinbaseAPIPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(CoinbaseAPILabel, javax.swing.GroupLayout.PREFERRED_SIZE, 351,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(CoinbaseAPIPanelLayout.createSequentialGroup()
                                            .addComponent(CoinbaseAPICurrentUserLabel)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(CoinbaseAPIUserSelectionBox, 0,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                            .addContainerGap(469, Short.MAX_VALUE)));
    CoinbaseAPIPanelLayout.setVerticalGroup(CoinbaseAPIPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(CoinbaseAPIPanelLayout.createSequentialGroup().addGap(18, 18, 18)
                    .addComponent(CoinbaseAPILabel)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(CoinbaseAPIPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(CoinbaseAPICurrentUserLabel).addComponent(CoinbaseAPIUserSelectionBox,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addContainerGap(526, Short.MAX_VALUE)));

    BitcoinInformationTabbedPane.addTab("Coinbase API", CoinbaseAPIPanel);

    EligiusStatusLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
            org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, EligiusUsernameSelectionBox,
            org.jdesktop.beansbinding.ELProperty.create("${selectedItem}"), EligiusStatusLabel,
            org.jdesktop.beansbinding.BeanProperty.create("text"));
    bindingGroup.addBinding(binding);

    /*
    org.planetcrypto.bitcoin.PlanetCryptoNetworkMethods parser = new org.planetcrypto.bitcoin.PlanetCryptoNetworkMethods();
    ArrayList<String> eligius_names = cfg.getEligius();
    //System.out.println(eligius_names);
    EligiusUsernameSelectionBox.setModel(new javax.swing.DefaultComboBoxModel(eligius_names.toArray()));
    String eligius_name = EligiusUsernameSelectionBox.getSelectedItem().toString();
            
    if (eligius_name.startsWith("Eligius not configured")) {
    EligiusHashRateInformationTable.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {
            {"12 Hours", null, null},
            {"3 Hours", null, null},
            {"22.5 Minutes", null, null},
            {"256 Seconds", null, null},
            {"128 Seconds", null, null}
        },
        new String [] {
            "Interval", "Hashrate", "Weighted Shares"
        }
    ) {
        Class[] types = new Class [] {
            java.lang.String.class, java.lang.String.class, java.lang.Integer.class
        };
        boolean[] canEdit = new boolean [] {
            false, false, false
        };
            
        public Class getColumnClass(int columnIndex) {
            return types [columnIndex];
        }
            
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return canEdit [columnIndex];
        }
    });
    } else {
    String hashrates = parser.getHashRate("&username=" + eligius_name);
    EligiusHashRateInformationTable.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {
            {"12 Hours", parser.getHashRateIntervals(hashrates, "av43200").get(0), parser.getHashRateIntervals(hashrates, "av43200").get(1)},
            {"3 Hours", parser.getHashRateIntervals(hashrates, "av10800").get(0), parser.getHashRateIntervals(hashrates, "av10800").get(1)},
            {"22.5 Minutes", parser.getHashRateIntervals(hashrates, "av1350").get(0), parser.getHashRateIntervals(hashrates, "av1350").get(1)},
            {"256 Seconds", parser.getHashRateIntervals(hashrates, "av256").get(0), parser.getHashRateIntervals(hashrates, "av256").get(1)},
            {"128 Seconds", parser.getHashRateIntervals(hashrates, "av128").get(0), parser.getHashRateIntervals(hashrates, "av128").get(1)}
        },
        new String [] {
            "Interval", "Hashrate", "Weighted Shares"
        }
    ) {
        Class[] types = new Class [] {
            java.lang.String.class, java.lang.String.class, java.lang.Integer.class
        };
        boolean[] canEdit = new boolean [] {
            false, false, false
        };
            
        public Class getColumnClass(int columnIndex) {
            return types [columnIndex];
        }
            
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return canEdit [columnIndex];
        }
    });
    }
    cfg.closeAll();
    EligiusHashRateInformationScrollPane.setViewportView(EligiusHashRateInformationTable);
    */
    EligiusPoolInformationRefreshButtonActionPerformed(null);

    /*
    Thread t = new Thread(new Runnable() {
    @Override
    public void run() {
        eligius_name = EligiusUsernameSelectionBox.getSelectedItem().toString();
        if (eligius_name.startsWith("Eligius not configured")) {
            EligiusPayoutInformationTable.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][] {
                    {"bal", null},
                    {"ec", null},
                    {"everpaid", null},
                    {"lbal", null},
                    {"lec", null}
                },
                new String [] {
                    "", "Amount"
                }
            ) {
                Class[] types = new Class [] {
                    java.lang.String.class, java.lang.String.class, java.lang.Integer.class
                };
                boolean[] canEdit = new boolean [] {
                    false, false, false
                };
            
                public Class getColumnClass(int columnIndex) {
                    return types [columnIndex];
                }
            
                public boolean isCellEditable(int rowIndex, int columnIndex) {
                    return canEdit [columnIndex];
                }}
            );
        } else {
            String stats = parser.getUserStat("&username=" + eligius_name);
            EligiusPayoutInformationTable.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][] {
                    {"bal", parser.getUserStats(stats, "bal")},
                    {"ec", parser.getUserStats(stats, "ec")},
                    {"everpaid", parser.getUserStats(stats, "everpaid")},
                    {"lbal", parser.getUserStats(stats, "lbal")},
                    {"lec", parser.getUserStats(stats, "lec")}
                },
                new String [] {
                    "", "Amount"
                }
            ) {
                Class[] types = new Class [] {
                    java.lang.String.class, java.lang.String.class, java.lang.Integer.class
                };
                boolean[] canEdit = new boolean [] {
                    false, false, false
                };
            
                public Class getColumnClass(int columnIndex) {
                    return types [columnIndex];
                }
            
                public boolean isCellEditable(int rowIndex, int columnIndex) {
                    return canEdit [columnIndex];
                }}
            );
            BFGMinerAPICoinbase coinbase = new BFGMinerAPICoinbase();
            String rate = coinbase.getContent("https://coinbase.com/api/v1/currencies/exchange_rates", "btc_to_usd");
            String payout = EligiusPayoutInformationTable.getValueAt(0, 1).toString().replace(" BTC", "");
            BTCConversionRateTextField.setText(rate);
            EstimatedPayoutTextField.setText(String.valueOf(Float.parseFloat(rate)* Float.parseFloat(payout)));
            
        }
        //BFGMinerAPICoinbase coinbase = new BFGMinerAPICoinbase();
        //BTCConversionRateTextField.setText(coinbase.getContent("https://coinbase.com/api/v1/currencies/exchange_rates", "btc_to_usd"));
        //if (EligiusPayoutInformationTable.getValueAt(0, 1) != null) {
            //    System.out.println(EligiusPayoutInformationTable.getValueAt(0, 1).toString());
            //} else {
            //    System.out.println("No Value yet");
            //}
        EligiusPayoutInformationTable.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                EligiusPayoutInformationTablePropertyChange(evt);
            }
        });
        EligiusPayoutInformationPayoutScrollPane.setViewportView(EligiusPayoutInformationTable);
    }
    });
    t.start();
    */
    //EligiusPayoutInformationTableAncestorRemoved(null);

    EligiusPoolInformationRefreshButton.setText("Refresh");
    EligiusPoolInformationRefreshButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            EligiusPoolInformationRefreshButtonActionPerformed(evt);
        }
    });

    EligiousPayoutKeyInformationTextPane.setFont(new Font("Dialog", Font.PLAIN, 14));
    EligiousPayoutKeyInformationTextPane.setContentType("text/html");
    EligiousPayoutKeyInformationTextPane.setText(
            "<html><ul><li><em><b>bal</b></em> - Current unpaid balance including estimates for the current round</li>"
                    + "<li><em><b>ec</b></em> - Sum of CPPSRB shelved shares and SMPPS extra credit (if applicable) including estimates for the current round</li>"
                    + "<li><em><b>everpaid</b></em> - Total actually paid (and verifyable in the blockchain) to this miner</li>"
                    + "<li><em><b>lbal</b></em> - Unpaid balance as of the last block (no estimates)</li>"
                    + "<li><em><b>lec</b></em> - Sum of CPPSRB shelved shares and SMPPS extra credit (if applicable) as of the last block (no estimates)</li></ul></html>");
    EligiousPayoutKeyInformationTextPane.setEditable(false);
    EligiusPayoutKeyInformationScrollPane.setViewportView(EligiousPayoutKeyInformationTextPane);

    existing_eligius = currentEligius();
    EligiusUsernameSelectionBox.setModel(new javax.swing.DefaultComboBoxModel(existing_eligius.toArray()));
    EligiusUsernameSelectionBox.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            EligiusUsernameSelectionBoxActionPerformed(evt);
        }
    });

    EligiusUsernameClipboardCopyButton.setText("Copy To Clipboard");
    EligiusUsernameClipboardCopyButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            EligiusUsernameClipboardCopyButtonActionPerformed(evt);
        }
    });

    EligiusPoolCurrentUsernameLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 12)); // NOI18N
    EligiusPoolCurrentUsernameLabel.setText("Eligius Username:");

    EligiusOpenBrowserButton.setText("Open Eligius in Browser");
    EligiusOpenBrowserButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            EligiusOpenBrowserButtonActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout EligiusPoolInformationPanelLayout = new javax.swing.GroupLayout(
            EligiusPoolInformationPanel);
    EligiusPoolInformationPanel.setLayout(EligiusPoolInformationPanelLayout);
    EligiusPoolInformationPanelLayout.setHorizontalGroup(EligiusPoolInformationPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(EligiusPoolInformationPanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(EligiusPoolInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(EligiusPayoutKeyInformationScrollPane,
                                    javax.swing.GroupLayout.PREFERRED_SIZE, 695,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(EligiusPoolInformationPanelLayout.createSequentialGroup()
                                    .addComponent(EligiusPayoutInformationPayoutScrollPane,
                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(EligiusPoolInformationRefreshButton))
                            .addComponent(EligiusHashRateInformationScrollPane,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(EligiusPoolInformationPanelLayout.createSequentialGroup()
                                    .addGroup(EligiusPoolInformationPanelLayout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
                                                    false)
                                            .addGroup(EligiusPoolInformationPanelLayout.createSequentialGroup()
                                                    .addComponent(EligiusStatusLabel,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 408,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                                    .addPreferredGap(
                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                            Short.MAX_VALUE)
                                                    .addComponent(EligiusUsernameClipboardCopyButton))
                                            .addGroup(EligiusPoolInformationPanelLayout.createSequentialGroup()
                                                    .addComponent(EligiusPoolCurrentUsernameLabel)
                                                    .addGap(3, 3, 3).addComponent(EligiusUsernameSelectionBox,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 459,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE)))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(EligiusOpenBrowserButton)))
                    .addGap(14, 14, 14)));
    EligiusPoolInformationPanelLayout.setVerticalGroup(EligiusPoolInformationPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(EligiusPoolInformationPanelLayout.createSequentialGroup().addGap(13, 13, 13)
                    .addGroup(EligiusPoolInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(EligiusUsernameSelectionBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(EligiusPoolCurrentUsernameLabel))
                    .addGap(16, 16, 16)
                    .addGroup(EligiusPoolInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(EligiusStatusLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 18,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(EligiusUsernameClipboardCopyButton)
                            .addComponent(EligiusOpenBrowserButton))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(EligiusHashRateInformationScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE,
                            113, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(18, 18, 18)
                    .addGroup(EligiusPoolInformationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(EligiusPayoutInformationPayoutScrollPane,
                                    javax.swing.GroupLayout.PREFERRED_SIZE, 126,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(EligiusPoolInformationRefreshButton))
                    .addGap(18, 18, 18).addComponent(EligiusPayoutKeyInformationScrollPane,
                            javax.swing.GroupLayout.PREFERRED_SIZE, 159, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap()));

    BitcoinInformationTabbedPane.addTab("Pool Information", EligiusPoolInformationPanel);

    javax.swing.GroupLayout BTCInformationPaneLayout = new javax.swing.GroupLayout(BTCInformationPane);
    BTCInformationPane.setLayout(BTCInformationPaneLayout);
    BTCInformationPaneLayout.setHorizontalGroup(
            BTCInformationPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(BitcoinInformationTabbedPane));
    BTCInformationPaneLayout.setVerticalGroup(
            BTCInformationPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(BitcoinInformationTabbedPane));

    MainTabbedPane.addTab("Bitcoin Information", BTCInformationPane);

    MinerConfigurationPanel.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            MinerConfigurationPanelFocusGained(evt);
        }
    });

    ConfigurationPromptLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N
    ConfigurationPromptLabel
            .setText("Please fill in the following form to configure this interface. Changes are persistent.");

    ConfigurationRemoveMinerButton.setText("Remove Miner");
    ConfigurationRemoveMinerButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            ConfigurationRemoveMinerButtonActionPerformed(evt);
        }
    });

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

    ConfigurationAddMinerNameLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ConfigurationAddMinerNameLabel.setText("Miner Name:");

    ConfigurationAddMinerIPLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ConfigurationAddMinerIPLabel.setText("Miner IP:");

    ConfigurationMinerPortLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ConfigurationMinerPortLabel.setText("Miner Port:");

    ConfigurationAddMinersLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N
    ConfigurationAddMinersLabel.setText("Add Miners");

    ConfigurationRemoveMinersLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N
    ConfigurationRemoveMinersLabel.setText("Remove Miners");

    ConfigurationRemoveMinerNameLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ConfigurationRemoveMinerNameLabel.setText("Miner Name:");

    ConfigurationCurrentMinersLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N
    ConfigurationCurrentMinersLabel.setText("Current Miners:");

    ConfigurationRemoveMinerIPLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ConfigurationRemoveMinerIPLabel.setText("or Miner IP:");

    ConfigurationResolveHostAddressLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ConfigurationResolveHostAddressLabel.setText("Resolve host address:");

    ConfigurationResolveHostAddressButton.setText("Get IP");
    ConfigurationResolveHostAddressButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            ConfigurationResolveHostAddressButtonActionPerformed(evt);
        }
    });

    ConfigurationCurrentMinersTextPane.setEditable(false);
    ConfigurationCurrentMinersTextPane.setFont(new Font("Monospaced", 0, 12)); // NOI18N
    ConfigurationCurrentMinersTextPane.setContentType("text/html");
    org.planetcrypto.bitcoin.PlanetCryptoBitcoinUserConfiguration current_miners_configuration = new org.planetcrypto.bitcoin.PlanetCryptoBitcoinUserConfiguration();
    ConfigurationCurrentMinersTextPane.setText(current_miners_configuration.currentMiners());
    current_miners_configuration.closeAll();
    ConfigurationCurrentMinersTextPane.setEditable(false);
    ConfigurationCurrentMinersScrollPane.setViewportView(ConfigurationCurrentMinersTextPane);

    javax.swing.GroupLayout MinerConfigurationPanelLayout = new javax.swing.GroupLayout(
            MinerConfigurationPanel);
    MinerConfigurationPanel.setLayout(MinerConfigurationPanelLayout);
    MinerConfigurationPanelLayout.setHorizontalGroup(MinerConfigurationPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(MinerConfigurationPanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(MinerConfigurationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(MinerConfigurationPanelLayout.createSequentialGroup()
                                    .addComponent(ConfigurationRemoveMinerNameLabel)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(ConfigurationRemoveMinerNameTextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE, 123,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addComponent(ConfigurationRemoveMinerIPLabel)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addComponent(ConfigurationRemoveMinerIPTextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE, 129,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addComponent(ConfigurationRemoveMinerButton))
                            .addComponent(ConfigurationPromptLabel).addComponent(ConfigurationAddMinersLabel)
                            .addComponent(ConfigurationRemoveMinersLabel)
                            .addComponent(ConfigurationCurrentMinersLabel)
                            .addGroup(MinerConfigurationPanelLayout.createSequentialGroup()
                                    .addGroup(MinerConfigurationPanelLayout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING,
                                                    MinerConfigurationPanelLayout.createSequentialGroup()
                                                            .addComponent(ConfigurationResolveHostAddressLabel)
                                                            .addPreferredGap(
                                                                    javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                            .addComponent(
                                                                    ConfigurationResolveHostAddressTextField,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 168,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                            .addPreferredGap(
                                                                    javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                                            .addComponent(
                                                                    ConfigurationResolveHostAddressButton))
                                            .addGroup(MinerConfigurationPanelLayout.createSequentialGroup()
                                                    .addComponent(ConfigurationAddMinerNameLabel)
                                                    .addPreferredGap(
                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                    .addComponent(ConfigurationAddMinerNameTextField,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 126,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                                    .addGap(21, 21, 21)
                                                    .addComponent(ConfigurationAddMinerIPLabel)
                                                    .addPreferredGap(
                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                    .addComponent(ConfigurationAddMinerIPTextField,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 129,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE)))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(ConfigurationMinerPortLabel)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(ConfigurationMinerPortTextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE, 61,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGap(43, 43, 43).addComponent(ConfigurationAddMinerButton))
                            .addComponent(ConfigurationCurrentMinersScrollPane,
                                    javax.swing.GroupLayout.PREFERRED_SIZE, 333,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    MinerConfigurationPanelLayout.setVerticalGroup(MinerConfigurationPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(MinerConfigurationPanelLayout.createSequentialGroup().addGap(16, 16, 16)
                    .addComponent(ConfigurationPromptLabel)
                    .addGroup(MinerConfigurationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(MinerConfigurationPanelLayout.createSequentialGroup().addGap(16, 16, 16)
                                    .addComponent(ConfigurationAddMinersLabel)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(MinerConfigurationPanelLayout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(ConfigurationAddMinerNameLabel)
                                            .addComponent(ConfigurationAddMinerNameTextField,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(ConfigurationAddMinerIPLabel)
                                            .addComponent(ConfigurationAddMinerIPTextField,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(ConfigurationMinerPortLabel)
                                            .addComponent(ConfigurationMinerPortTextField,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addGroup(MinerConfigurationPanelLayout.createSequentialGroup().addGap(37, 37, 37)
                                    .addComponent(ConfigurationAddMinerButton)))
                    .addGap(35, 35, 35)
                    .addGroup(MinerConfigurationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ConfigurationResolveHostAddressLabel)
                            .addComponent(ConfigurationResolveHostAddressTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(ConfigurationResolveHostAddressButton))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addComponent(ConfigurationRemoveMinersLabel)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(MinerConfigurationPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ConfigurationRemoveMinerNameLabel)
                            .addComponent(ConfigurationRemoveMinerNameTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(ConfigurationRemoveMinerIPLabel)
                            .addComponent(ConfigurationRemoveMinerIPTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(ConfigurationRemoveMinerButton))
                    .addGap(25, 25, 25).addComponent(ConfigurationCurrentMinersLabel).addGap(33, 33, 33)
                    .addComponent(ConfigurationCurrentMinersScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE,
                            209, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

    ConfigurationTabbedPane.addTab("Miners", MinerConfigurationPanel);

    ConfigurationAlarmSettingsPromptLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N
    ConfigurationAlarmSettingsPromptLabel.setText("Configure Alarm Settings Here.");

    ConfigurationMinerTemperatureAlarmLabel.setText("Temperature:");

    ConfigurationMinerFanSpeedAlarmLabel.setText("Fan Speed:");

    ConfigurationMinerHashRateAlarmLabel.setText("Hash Rate:");

    MinerSelectionForAlarmsBox.setModel(new javax.swing.DefaultComboBoxModel(miners.toArray()));

    binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(
            org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, MinerSelectionBox5,
            org.jdesktop.beansbinding.ELProperty.create("${selectedItem}"), MinerSelectionForAlarmsBox,
            org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
    bindingGroup.addBinding(binding);

    AlarmsCurrentMinerLabel.setText("Current Miner:");

    ConfigurationAlarmsHWErrPercentLabel.setText("Hardware Errors:");

    ConfigurationMinerTempAlarmTextField.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

    ConfigurationFanSpeedAlarmTextField.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

    ConfigurationMinerHashRateAlarmTextField.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

    ConfigurationMinerHardwareErrPercentAlarmTextField.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

    ConfigurationDegreesCelsiusLabel.setText("C");

    ConfigurationFanRPMLabel.setText("RPM");

    ConfigurationHashRatePostfixComboBox
            .setModel(new javax.swing.DefaultComboBoxModel(new String[] { "TH/s", "GH/s", "MH/s" }));
    ConfigurationHashRatePostfixComboBox.setSelectedIndex(1);

    ConfigurationHWErrorPercentLabel.setText("%");

    ConfigurationMinerTempAlarmUpdateButton.setText("Update");
    ConfigurationMinerTempAlarmUpdateButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            ConfigurationMinerTempAlarmUpdateButtonActionPerformed(evt);
        }
    });

    ConfigurationMinerFanSpeedAlarmUpdateButton.setText("Update");
    ConfigurationMinerFanSpeedAlarmUpdateButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            ConfigurationMinerFanSpeedAlarmUpdateButtonActionPerformed(evt);
        }
    });

    ConfigurationMinerHashRateAlarmUpdateButton.setText("Update");
    ConfigurationMinerHashRateAlarmUpdateButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            ConfigurationMinerHashRateAlarmUpdateButtonActionPerformed(evt);
        }
    });

    ConfigurationMinerHardwareErrPercentAlarmUpdateButton.setText("Update");
    ConfigurationMinerHardwareErrPercentAlarmUpdateButton
            .addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    ConfigurationMinerHardwareErrPercentAlarmUpdateButtonActionPerformed(evt);
                }
            });

    ConfigurationCurrentMinerAlarmsTextPane.setContentType(("text/html"));
    /*StringBuffer current_alarms = new StringBuffer();
    String temp = new String();
    Object temp_type = new Object();
    HashMap<String, Object> temp_alarms = new HashMap<>();
    current_alarms.append(CurrentAlarmsHeader);
    System.out.println(existing_miners.toString());
    for (int i = 0; i < existing_miners.size(); i++) {
    temp = existing_miners.get(i).get("name");
    if (temp.equals("No Miners")) {
        current_alarms.append(newrow);
        for (int j = 0; j < 5; j++) {
            current_alarms.append("None");
            if (j == 4) {
                break;
            }
            current_alarms.append(newcolumn);
        }
        current_alarms.append(closerow);
        current_alarms.append(VitalStatsFooter);
        System.out.println(current_alarms.toString());
        break;
    }
    temp_alarms = cfg.getAlarms(temp);
    if (temp_alarms == null) {
        current_alarms.append(newrow);
        current_alarms.append(temp);
        current_alarms.append(newcolumn);
        for (int j = 0; j < 4; j++) {
            current_alarms.append("None");
            if (j == 3) {
                break;
            }
            current_alarms.append(newcolumn);
        }
        current_alarms.append(closerow);
        current_alarms.append(VitalStatsFooter);
        System.out.println(current_alarms.toString());
        break;
    }
    current_alarms.append(newrow);
    current_alarms.append(temp);
    current_alarms.append(newcolumn);
    current_alarms.append(temp_alarms.get("fan"));
    current_alarms.append(newcolumn);
    current_alarms.append(temp_alarms.get("temp"));
    current_alarms.append(newcolumn);
    temp_type = temp_alarms.get("hash_rate_type");
    temp_type = (temp_type == null) ? "GH/s" : temp_type.toString();
    current_alarms.append(temp_alarms.get("hash_rate") + " " + temp_type);
    current_alarms.append(newcolumn);
    current_alarms.append(temp_alarms.get("hw_err"));
    current_alarms.append(closerow);
    current_alarms.append(VitalStatsFooter);
    }
    ConfigurationCurrentMinerAlarmsTextPane.setText(current_alarms.toString());
    */
    ConfigurationCurrentMinerAlarmsTextPanePropertyChange(null);
    ConfigurationCurrentMinerAlarmsTextPane.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
        public void propertyChange(java.beans.PropertyChangeEvent evt) {
            ConfigurationCurrentMinerAlarmsTextPanePropertyChange(evt);
        }
    });
    ConfigurationCurrentMinerAlarmsScrollPane.setViewportView(ConfigurationCurrentMinerAlarmsTextPane);

    ConfigurationCurrentMinerAlarmsLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 12)); // NOI18N
    ConfigurationCurrentMinerAlarmsLabel.setText("Current alarms:");

    javax.swing.GroupLayout ConfigurationAlarmPanelLayout = new javax.swing.GroupLayout(
            ConfigurationAlarmPanel);
    ConfigurationAlarmPanel.setLayout(ConfigurationAlarmPanelLayout);
    ConfigurationAlarmPanelLayout.setHorizontalGroup(ConfigurationAlarmPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(ConfigurationAlarmPanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(ConfigurationAlarmPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(ConfigurationCurrentMinerAlarmsScrollPane,
                                    javax.swing.GroupLayout.PREFERRED_SIZE, 371,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(ConfigurationAlarmPanelLayout.createSequentialGroup()
                                    .addGroup(ConfigurationAlarmPanelLayout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(ConfigurationAlarmSettingsPromptLabel,
                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(ConfigurationAlarmPanelLayout.createSequentialGroup()
                                                    .addGroup(ConfigurationAlarmPanelLayout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.TRAILING,
                                                                    false)
                                                            .addComponent(ConfigurationAlarmsHWErrPercentLabel,
                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    Short.MAX_VALUE)
                                                            .addComponent(
                                                                    ConfigurationMinerTemperatureAlarmLabel,
                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    Short.MAX_VALUE)
                                                            .addComponent(ConfigurationMinerFanSpeedAlarmLabel,
                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    Short.MAX_VALUE)
                                                            .addComponent(ConfigurationMinerHashRateAlarmLabel,
                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    Short.MAX_VALUE)
                                                            .addComponent(AlarmsCurrentMinerLabel,
                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                    Short.MAX_VALUE))
                                                    .addPreferredGap(
                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                    .addGroup(ConfigurationAlarmPanelLayout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                            .addComponent(MinerSelectionForAlarmsBox,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 173,
                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                            .addGroup(ConfigurationAlarmPanelLayout
                                                                    .createSequentialGroup()
                                                                    .addGroup(ConfigurationAlarmPanelLayout
                                                                            .createParallelGroup(
                                                                                    javax.swing.GroupLayout.Alignment.TRAILING,
                                                                                    false)
                                                                            .addComponent(
                                                                                    ConfigurationMinerHardwareErrPercentAlarmTextField,
                                                                                    javax.swing.GroupLayout.Alignment.LEADING,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    129, Short.MAX_VALUE)
                                                                            .addComponent(
                                                                                    ConfigurationMinerHashRateAlarmTextField,
                                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addComponent(
                                                                                    ConfigurationFanSpeedAlarmTextField,
                                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addComponent(
                                                                                    ConfigurationMinerTempAlarmTextField,
                                                                                    javax.swing.GroupLayout.Alignment.LEADING))
                                                                    .addPreferredGap(
                                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                                    .addGroup(ConfigurationAlarmPanelLayout
                                                                            .createParallelGroup(
                                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                                            .addComponent(
                                                                                    ConfigurationDegreesCelsiusLabel)
                                                                            .addComponent(
                                                                                    ConfigurationFanRPMLabel)
                                                                            .addComponent(
                                                                                    ConfigurationHashRatePostfixComboBox,
                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                            .addComponent(
                                                                                    ConfigurationHWErrorPercentLabel))))))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addGroup(ConfigurationAlarmPanelLayout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(ConfigurationMinerHashRateAlarmUpdateButton)
                                            .addComponent(ConfigurationMinerHardwareErrPercentAlarmUpdateButton)
                                            .addComponent(ConfigurationMinerTempAlarmUpdateButton)
                                            .addComponent(ConfigurationMinerFanSpeedAlarmUpdateButton)))
                            .addComponent(ConfigurationCurrentMinerAlarmsLabel))
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    ConfigurationAlarmPanelLayout.setVerticalGroup(ConfigurationAlarmPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(ConfigurationAlarmPanelLayout.createSequentialGroup().addContainerGap()
                    .addComponent(ConfigurationAlarmSettingsPromptLabel)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(ConfigurationAlarmPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(AlarmsCurrentMinerLabel).addComponent(MinerSelectionForAlarmsBox,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(ConfigurationAlarmPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ConfigurationMinerTemperatureAlarmLabel)
                            .addComponent(ConfigurationMinerTempAlarmTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(ConfigurationDegreesCelsiusLabel)
                            .addComponent(ConfigurationMinerTempAlarmUpdateButton))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(ConfigurationAlarmPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ConfigurationMinerFanSpeedAlarmLabel)
                            .addComponent(ConfigurationFanSpeedAlarmTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(ConfigurationFanRPMLabel)
                            .addComponent(ConfigurationMinerFanSpeedAlarmUpdateButton))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(ConfigurationAlarmPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ConfigurationMinerHashRateAlarmLabel)
                            .addComponent(ConfigurationMinerHashRateAlarmTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(ConfigurationHashRatePostfixComboBox,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(ConfigurationMinerHashRateAlarmUpdateButton))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(ConfigurationAlarmPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(ConfigurationAlarmsHWErrPercentLabel)
                            .addComponent(ConfigurationMinerHardwareErrPercentAlarmTextField,
                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(ConfigurationHWErrorPercentLabel)
                            .addComponent(ConfigurationMinerHardwareErrPercentAlarmUpdateButton))
                    .addGap(18, 18, 18).addComponent(ConfigurationCurrentMinerAlarmsLabel).addGap(18, 18, 18)
                    .addComponent(ConfigurationCurrentMinerAlarmsScrollPane,
                            javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

    ConfigurationTabbedPane.addTab("Alarms", ConfigurationAlarmPanel);

    ConfigurationEligiusLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N
    ConfigurationEligiusLabel.setText("Eligius");

    ConfigurationMiningPoolPromptLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 18)); // NOI18N
    ConfigurationMiningPoolPromptLabel.setText("Use this tab to configure mining pools");

    ConfigurationEligiusUsernameLabel.setText("Eligius Username*:");

    ConfigurationEligiusHelpPromptLabel.setFont(new java.awt.Font("Monospaced", 0, 10)); // NOI18N
    ConfigurationEligiusHelpPromptLabel.setText("*For more information about these fields, please see help*");

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

    ConfigurationEligiusUsernameRemoveButton.setText("Remove");
    ConfigurationEligiusUsernameRemoveButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            ConfigurationEligiusUsernameRemoveButtonActionPerformed(evt);
        }
    });

    ConfigurationEligiusExampleLabel.setFont(new java.awt.Font("DejaVu Serif", 0, 10)); // NOI18N
    ConfigurationEligiusExampleLabel.setText(
            "*User name is the same as Mining Address for example: \"1EXfBqvLTyFbL6Dr5CG1fjxNKEPSezg7yF\"");

    javax.swing.GroupLayout ConfigurationEligiusPoolsPanelLayout = new javax.swing.GroupLayout(
            ConfigurationEligiusPoolsPanel);
    ConfigurationEligiusPoolsPanel.setLayout(ConfigurationEligiusPoolsPanelLayout);
    ConfigurationEligiusPoolsPanelLayout.setHorizontalGroup(ConfigurationEligiusPoolsPanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(ConfigurationEligiusPoolsPanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(ConfigurationEligiusPoolsPanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(ConfigurationEligiusPoolsPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(ConfigurationEligiusPoolsPanelLayout.createSequentialGroup()
                                            .addComponent(ConfigurationMiningPoolPromptLabel)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(ConfigurationEligiusHelpPromptLabel))
                                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING,
                                            ConfigurationEligiusPoolsPanelLayout.createSequentialGroup()
                                                    .addComponent(ConfigurationEligiusUsernameLabel)
                                                    .addPreferredGap(
                                                            javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                    .addComponent(ConfigurationEligiusUsernameTextField,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 256,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                                    .addGap(18, 18, 18)
                                                    .addComponent(ConfigurationEligiusUsernameAddButton)
                                                    .addPreferredGap(
                                                            javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                                    .addComponent(ConfigurationEligiusUsernameRemoveButton)))
                            .addComponent(ConfigurationEligiusLabel)
                            .addGroup(ConfigurationEligiusPoolsPanelLayout.createSequentialGroup()
                                    .addGap(12, 12, 12).addComponent(ConfigurationEligiusExampleLabel,
                                            javax.swing.GroupLayout.PREFERRED_SIZE, 527,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
    ConfigurationEligiusPoolsPanelLayout.setVerticalGroup(
            ConfigurationEligiusPoolsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(ConfigurationEligiusPoolsPanelLayout.createSequentialGroup().addContainerGap()
                            .addGroup(ConfigurationEligiusPoolsPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(ConfigurationEligiusHelpPromptLabel)
                                    .addComponent(ConfigurationMiningPoolPromptLabel))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(ConfigurationEligiusLabel)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(ConfigurationEligiusPoolsPanelLayout
                                    .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(ConfigurationEligiusUsernameLabel)
                                    .addComponent(ConfigurationEligiusUsernameTextField,
                                            javax.swing.GroupLayout.PREFERRED_SIZE,
                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(ConfigurationEligiusUsernameAddButton)
                                    .addComponent(ConfigurationEligiusUsernameRemoveButton))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(ConfigurationEligiusExampleLabel)
                            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

    ConfigurationTabbedPane.addTab("Pools", ConfigurationEligiusPoolsPanel);

    ConfigurationCoinExchangePanel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N

    ConfigurationCoinbaseLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N
    ConfigurationCoinbaseLabel.setText("Configure Coinbase Here");

    ConfigurationCoinbaseCurrencyLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    ConfigurationCoinbaseCurrencyLabel.setText("Preferred Exchange Currency:");

    ConfigurationCoinbaseCurrencyComboBox.setModel(
            new javax.swing.DefaultComboBoxModel(PlanetCryptoBitcoinCoinbaseCurrency.coinbaseCurrencies()));
    /*
    new javax.swing.DefaultComboBoxModel(
    new String[]{ "Select", "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD",
        "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BRL", "BSD", "BTC", "BTN", "BWP",
        "BYR", "BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CUP", "CVE", "CZK",
        "DJF", "DKK", "DOP", "DZD", "EEK", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL",
        "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR",
        "ILS", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW",
        "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LVL", "LYD", "MAD",
        "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MUR", "MVR", "MWK", "MXN", "MYR",
        "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR",
        "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD",
        "SHP", "SLL", "SOS", "SRD", "STD", "SVC", "SYP", "SZL", "THB", "TJS", "TMM", "TND", "TOP",
        "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "UY", "UZS", "VEF", "VND", "VUV", "WST",
        "XAF", "XCD", "XOF", "XPF", "YER", "ZAR", "ZMK", "ZWL" }
    */

    CoinbaseInformationLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N
    CoinbaseInformationLabel.setText("Coinbase User API Information");

    CoinbaseUsernameLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    CoinbaseUsernameLabel.setText("Coinbase Username:");

    CoinbaseAPIKeyLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    CoinbaseAPIKeyLabel.setText("Coinbase API Key:");

    CoinbaseAPISecretKeyLabel.setFont(new java.awt.Font("DejaVu Serif", 1, 12)); // NOI18N
    CoinbaseAPISecretKeyLabel.setText("Coinbase API Secret:");

    AddCoinbaseUsernameButton.setText("Add/Update");
    AddCoinbaseUsernameButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            AddCoinbaseUsernameButtonActionPerformed(evt);
        }
    });

    RemoveCoinbaseUsernameButton.setText("Remove");
    RemoveCoinbaseUsernameButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            RemoveCoinbaseUsernameButtonActionPerformed(evt);
        }
    });

    CurrentCoinbaseConfigurationLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N
    CurrentCoinbaseConfigurationLabel.setText("Current Coinbase Configuration:");

    CurrentCoinbaseConfigurationTextPane.setEditable(false);
    CurrentCoinbaseConfigurationTextPane.setContentType("text/html"); // NOI18N
    /*
    existing_coinbase = currentCoinbase();
    if (existing_coinbase == null) {
        CurrentCoinbaseConfigurationTextPane.setText("<html><body><p><b>No Configuration</b></p></body></html>");
    } else {
        CurrentCoinbaseConfigurationTextPane.setText(existing_coinbase.toString());
    }
    */
    CurrentCoinbaseConfigurationTextPane.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
        public void propertyChange(java.beans.PropertyChangeEvent evt) {
            CurrentCoinbaseConfigurationTextPanePropertyChange(evt);
        }
    });
    CurrentCoinbaseConfigurationScrollPane.setViewportView(CurrentCoinbaseConfigurationTextPane);

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

    CoinbaseConfigurationInstructionsTextPane.setEditable(false);
    CoinbaseConfigurationInstructionsTextPane.setContentType("text/html"); // NOI18N
    CoinbaseConfigurationInstructionsTextPane.setFont(new java.awt.Font("DejaVu Serif", 0, 12)); // NOI18N
    CoinbaseConfigurationInstructionsTextPane.setText(
            "<html>\n  <head>\n    <style>\n    body {background:#D6D9DF }\n   </style>\n  </head>\n  <body>\n    <ul>\n      <li>At a minimum <b>Coinbase Username</b> and <b>Preferred Exchange Currency</b> are required.</li>\n      <li>To add the minimum required parameters: \n           <ol>\n              <li>Enter the <b>Coinbase Username</b> to add</li>\n              <li>Select your <b>Preferred Exchange Currency</b></li>\n              <li>Click <b>Add/Update</b></li>\n           </ol>\n         </li>\n      <li>To add an API Key:\n           <ol>\n            <li>Enter the <b>Coinbase Username</b> to associate with key</li>\n            <li>Enter <b>Coinbase API Key</b> value</li>\n            <li>Enter <b>Coinbase API Secret</b> Value</li>\n            <li>Select your <b>Preferred Exchange Currency</b></li>\n            <li>Click <b>Add/Update</b></li>\n           </ol>\n         </li>\n      <li>To update/remove configuration associated with a <b>Coinbase Username</b></li>\n         <ol>\n           <li>Enter the <b>Coinbase Username</b> to update</li>\n           <li><b>If removing this configuration, simply click \"Remove\"</b></li>\n           <ul><li><b>Warning: This will remove ALL information from this app associated with this Coinbase Username</b></li></ul>\n           <li><b>If updating this configuration:</b></li>\n           <ul><li>Enter/Select the field to update, and click <b>Add/Update</b></li></ul>\n         </ol>\n    </ul>\n  </body>\n</html>\n");
    CoinbaseConfigurationInstructionsTextPane.setCaretPosition(0);
    CoinbaseConfigurationInstructionsScrollPane.setViewportView(CoinbaseConfigurationInstructionsTextPane);

    CoinbaseConfigurationInstructionsLabel.setFont(new java.awt.Font("DejaVu Serif", 3, 14)); // NOI18N
    CoinbaseConfigurationInstructionsLabel.setText("Configuration Instructions:");

    javax.swing.GroupLayout ConfigurationCoinExchangePanelLayout = new javax.swing.GroupLayout(
            ConfigurationCoinExchangePanel);
    ConfigurationCoinExchangePanel.setLayout(ConfigurationCoinExchangePanelLayout);
    ConfigurationCoinExchangePanelLayout.setHorizontalGroup(ConfigurationCoinExchangePanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(ConfigurationCoinExchangePanelLayout.createSequentialGroup().addContainerGap()
                    .addGroup(ConfigurationCoinExchangePanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(CurrentCoinbaseConfigurationScrollPane)
                            .addComponent(ConfigurationCoinbaseLabel)
                            .addGroup(ConfigurationCoinExchangePanelLayout.createSequentialGroup()
                                    .addGroup(ConfigurationCoinExchangePanelLayout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(ConfigurationCoinExchangePanelLayout
                                                    .createSequentialGroup()
                                                    .addGroup(ConfigurationCoinExchangePanelLayout
                                                            .createParallelGroup(
                                                                    javax.swing.GroupLayout.Alignment.LEADING)
                                                            .addGroup(
                                                                    javax.swing.GroupLayout.Alignment.TRAILING,
                                                                    ConfigurationCoinExchangePanelLayout
                                                                            .createSequentialGroup()
                                                                            .addComponent(
                                                                                    ConfigurationCoinbaseCurrencyLabel)
                                                                            .addGap(18, 18, 18).addComponent(
                                                                                    ConfigurationCoinbaseCurrencyComboBox,
                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                                    263,
                                                                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                                                            .addGroup(ConfigurationCoinExchangePanelLayout
                                                                    .createParallelGroup(
                                                                            javax.swing.GroupLayout.Alignment.TRAILING,
                                                                            false)
                                                                    .addComponent(
                                                                            CoinbaseConfigurationSeparator1,
                                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                                    .addComponent(CoinbaseInformationLabel,
                                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                                    .addGroup(
                                                                            javax.swing.GroupLayout.Alignment.LEADING,
                                                                            ConfigurationCoinExchangePanelLayout
                                                                                    .createSequentialGroup()
                                                                                    .addGroup(
                                                                                            ConfigurationCoinExchangePanelLayout
                                                                                                    .createParallelGroup(
                                                                                                            javax.swing.GroupLayout.Alignment.LEADING,
                                                                                                            false)
                                                                                                    .addComponent(
                                                                                                            CoinbaseUsernameLabel,
                                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                                            Short.MAX_VALUE)
                                                                                                    .addComponent(
                                                                                                            CoinbaseAPISecretKeyLabel,
                                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                                            Short.MAX_VALUE)
                                                                                                    .addComponent(
                                                                                                            CoinbaseAPIKeyLabel,
                                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                                            Short.MAX_VALUE))
                                                                                    .addGap(18, 18, 18)
                                                                                    .addGroup(
                                                                                            ConfigurationCoinExchangePanelLayout
                                                                                                    .createParallelGroup(
                                                                                                            javax.swing.GroupLayout.Alignment.LEADING)
                                                                                                    .addComponent(
                                                                                                            CoinbaseAPIUsernameTextField)
                                                                                                    .addComponent(
                                                                                                            CoinbaseAPIKeyTextField)
                                                                                                    .addComponent(
                                                                                                            CoinbaseAPISecretKeyTextField,
                                                                                                            javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                                                            330,
                                                                                                            Short.MAX_VALUE)))
                                                                    .addComponent(
                                                                            CoinbaseConfigurationSeparator,
                                                                            javax.swing.GroupLayout.Alignment.LEADING)))
                                                    .addGap(0, 0, 0)
                                                    .addComponent(CoinbaseConfigurationVerticalSeparator,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE, 12,
                                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addComponent(CurrentCoinbaseConfigurationLabel,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE, 266,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGap(32, 32, 32).addComponent(AddCoinbaseUsernameButton)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(RemoveCoinbaseUsernameButton))
                            .addComponent(CoinbaseConfigurationInstructionsLabel)
                            .addComponent(CoinbaseConfigurationInstructionsScrollPane,
                                    javax.swing.GroupLayout.DEFAULT_SIZE, 791, Short.MAX_VALUE))
                    .addContainerGap(17, Short.MAX_VALUE)));
    ConfigurationCoinExchangePanelLayout.setVerticalGroup(ConfigurationCoinExchangePanelLayout
            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(ConfigurationCoinExchangePanelLayout.createSequentialGroup().addContainerGap()
                    .addComponent(ConfigurationCoinbaseLabel)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(ConfigurationCoinExchangePanelLayout
                            .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(ConfigurationCoinExchangePanelLayout.createSequentialGroup()
                                    .addComponent(CoinbaseConfigurationSeparator,
                                            javax.swing.GroupLayout.PREFERRED_SIZE, 10,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(CoinbaseInformationLabel)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(ConfigurationCoinExchangePanelLayout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(CoinbaseUsernameLabel)
                                            .addComponent(CoinbaseAPIUsernameTextField,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(ConfigurationCoinExchangePanelLayout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(CoinbaseAPIKeyLabel)
                                            .addComponent(CoinbaseAPIKeyTextField,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(AddCoinbaseUsernameButton)
                                            .addComponent(RemoveCoinbaseUsernameButton))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(ConfigurationCoinExchangePanelLayout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(CoinbaseAPISecretKeyTextField,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(CoinbaseAPISecretKeyLabel))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addGroup(ConfigurationCoinExchangePanelLayout
                                            .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(ConfigurationCoinbaseCurrencyLabel)
                                            .addComponent(ConfigurationCoinbaseCurrencyComboBox,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE,
                                                    javax.swing.GroupLayout.DEFAULT_SIZE,
                                                    javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(CoinbaseConfigurationSeparator1,
                                            javax.swing.GroupLayout.PREFERRED_SIZE, 10,
                                            javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(ConfigurationCoinExchangePanelLayout.createSequentialGroup()
                                    .addComponent(CoinbaseConfigurationVerticalSeparator,
                                            javax.swing.GroupLayout.PREFERRED_SIZE, 172,
                                            javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(CurrentCoinbaseConfigurationLabel)))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(CurrentCoinbaseConfigurationScrollPane,
                            javax.swing.GroupLayout.PREFERRED_SIZE, 169, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                            javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(CoinbaseConfigurationInstructionsLabel)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(CoinbaseConfigurationInstructionsScrollPane,
                            javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(21, 21, 21)));

    ConfigurationTabbedPane.addTab("Coin Exchange", ConfigurationCoinExchangePanel);

    javax.swing.GroupLayout ConfigurationPanelLayout = new javax.swing.GroupLayout(ConfigurationPanel);
    ConfigurationPanel.setLayout(ConfigurationPanelLayout);
    ConfigurationPanelLayout.setHorizontalGroup(
            ConfigurationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                    javax.swing.GroupLayout.Alignment.TRAILING, ConfigurationPanelLayout.createSequentialGroup()
                            .addContainerGap().addComponent(ConfigurationTabbedPane).addContainerGap()));
    ConfigurationPanelLayout.setVerticalGroup(
            ConfigurationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(ConfigurationTabbedPane));

    MainTabbedPane.addTab("Configuration", ConfigurationPanel);

    FileMenu.setText("File");

    FileExitMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q,
            java.awt.event.InputEvent.ALT_MASK));
    FileExitMenuItem.setText("Quit");
    FileExitMenuItem.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            FileExitMenuItemActionPerformed(evt);
        }
    });
    FileMenu.add(FileExitMenuItem);

    BFGMInerUIMenuBar.add(FileMenu);

    EditMenu.setText("Edit");
    EditMenu.setMnemonic(KeyEvent.VK_E);

    CopyMenuItem.setText("Copy");
    CopyMenuItem.setMnemonic(KeyEvent.VK_C);
    EditMenu.add(CopyMenuItem);

    PasteMenuItem.setText("Paste");
    PasteMenuItem.setMnemonic(KeyEvent.VK_P);
    EditMenu.add(PasteMenuItem);

    BFGMInerUIMenuBar.add(EditMenu);

    HelpMenu.setText("Help");

    AppHelpMenuItem.setText("App Help");
    AppHelpMenuItem.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            AppHelpMenuItemActionPerformed(evt);
        }
    });
    HelpMenu.add(AppHelpMenuItem);

    AboutMenuItem.setText("About BFGMinerAPI");
    AboutMenuItem.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            AboutMenuItemActionPerformed(evt);
        }
    });
    HelpMenu.add(AboutMenuItem);

    BFGMInerUIMenuBar.add(HelpMenu);

    setJMenuBar(BFGMInerUIMenuBar);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(MainTabbedPane, javax.swing.GroupLayout.Alignment.TRAILING));
    layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(MainTabbedPane));

    MainTabbedPane.getAccessibleContext().setAccessibleName("");

    bindingGroup.bind();

    pack();
}