private void create(Color background) {
        final JPanel top = new JPanel();
        top.setLayout(new BorderLayout());
        top.setBorder(BorderFactory.createEmptyBorder(5, 5, 15, 5));
        top.setBackground(background);
        this.add(top, BorderLayout.NORTH);

        JLabel info = new JLabel();
        info.setFont(GUIConstants.DEFAULT_HEADING_FONT);
        info.setText(GUIStrings.keyToLocatedString(GUIStrings.KEY_EDITOR_LEFTINFO));
        top.add(info);

        final JPanel buttonPanel = new JPanel();
        buttonPanel.setBackground(background);
        buttonPanel.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
        buttonPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 10));
        this.add(buttonPanel, BorderLayout.CENTER);

        addButtons(buttonPanel);

        JPanel baseSkinDataPanel = new JPanel();
        baseSkinDataPanel.setBackground(background);
        baseSkinDataPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(50, 0, 0, 0),
                BorderFactory.createMatteBorder(1, 0, 0, 0, Color.LIGHT_GRAY)));
        baseSkinDataPanel.setLayout(new VerticalLayout(5, VerticalLayout.LEFT));
        buttonPanel.add(baseSkinDataPanel);

        {
            JLabel lblAuthorLabel = new JLabel(GUIStrings.keyToLocatedString(GUIStrings.KEY_NEWSKINDIALOG_AUTHOR));
            lblAuthorLabel.setFont(UIManager.getFont("MenuItem.font"));
            lblAuthorLabel.setBackground(background);
            lblAuthorLabel.setBorder(new EmptyBorder(15, 10, 0, 5));
            baseSkinDataPanel.add(lblAuthorLabel);

            final JTextField textFieldAuthor = new JTextField();
            textFieldAuthor.setColumns(25);
            textFieldAuthor.setText(this.editor.getSkinAuthor());
            textFieldAuthor.setCaretPosition(0);
            textFieldAuthor.addKeyListener(new KeyAdapter() {
                @Override
                public void keyReleased(KeyEvent e) {
                    while (textFieldAuthor.getText().length() > 50) {
                        textFieldAuthor.setText(textFieldAuthor.getText().substring(0, textFieldAuthor.getText().length() - 1));
                    }

                    EditorLeftMenu.this.editor.setSkinAuthor(textFieldAuthor.getText());
                }
            });
            baseSkinDataPanel.add(textFieldAuthor);

            JLabel lblWebsiteLabel = new JLabel(GUIStrings.keyToLocatedString(GUIStrings.KEY_NEWSKINDIALOG_WEB));
            lblWebsiteLabel.setFont(UIManager.getFont("MenuItem.font"));
            lblWebsiteLabel.setBackground(background);
            lblWebsiteLabel.setBorder(new EmptyBorder(8, 10, 0, 5));
            baseSkinDataPanel.add(lblWebsiteLabel);

            final JTextField textFieldWebsite = new JTextField();
            textFieldWebsite.setColumns(25);
            textFieldWebsite.setText(this.editor.getSkinWebsite());
            textFieldWebsite.setToolTipText(this.editor.getSkinWebsite());
            textFieldWebsite.setCaretPosition(0);
            textFieldWebsite.addKeyListener(new KeyAdapter() {
                @Override
                public void keyReleased(KeyEvent e) {
                    while (textFieldWebsite.getText().length() > 50) {
                        textFieldWebsite.setText(textFieldWebsite.getText().substring(0, textFieldWebsite.getText().length() - 1));
                    }

                    EditorLeftMenu.this.editor.setSkinWebsite(textFieldWebsite.getText());
                    textFieldWebsite.setToolTipText(textFieldWebsite.getText());
                }
            });
            baseSkinDataPanel.add(textFieldWebsite);

            JLabel lblImageLabel = new JLabel(GUIStrings.keyToLocatedString(GUIStrings.KEY_NEWSKINDIALOG_IMAGE));
            lblImageLabel.setFont(UIManager.getFont("MenuItem.font"));
            lblImageLabel.setBackground(background);
            lblImageLabel.setBorder(new EmptyBorder(8, 10, 0, 5));
            baseSkinDataPanel.add(lblImageLabel);

            final JTextField textFieldImage = new JTextField();
            textFieldImage.setEditable(false);
            textFieldImage.setColumns(25);
            textFieldImage.setCursor(new Cursor(Cursor.HAND_CURSOR));
            textFieldImage.setText(this.editor.getPreviewimage() != null ? this.editor.getPreviewimage().toString() : "");
            textFieldImage.setToolTipText(textFieldImage.getText());
            textFieldImage.setCaretPosition(0);
            textFieldImage.addMouseListener(new MouseAdapter() {

                @SuppressWarnings("unused")
                @Override
                public void mouseReleased(MouseEvent e) {
                    new FileChooserDialog(EditorLeftMenu.this.filechooserTitle, new ImageFileFilter(Constants.DEFAULT_INPUTIMAGE_TYPE),
                            false) {
                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onApprove(File file) {
                            textFieldImage.setText(file.toString());
                            textFieldImage.setToolTipText(textFieldImage.getText());
                            EditorLeftMenu.this.editor.setPreviewimage(file.toPath());
                        }

                        @Override
                        public void onCancel() {
                            ;
                        }

                    };
                }
            });
            baseSkinDataPanel.add(textFieldImage);
        }

        final JPanel btm = new JPanel();
        btm.setLayout(new BorderLayout());
        btm.setBackground(background);
        this.add(btm, BorderLayout.SOUTH);

        final JPanel applyBtnPanel = new JPanel();
        applyBtnPanel.setBackground(background);
        applyBtnPanel.setLayout(new VerticalLayout(5, VerticalLayout.CENTER));
        applyBtnPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 50, 0));
        btm.add(applyBtnPanel, BorderLayout.NORTH);

        JButton applyBtn = new JButton(GUIStrings.keyToLocatedString(GUIStrings.KEY_EDITOR_MENUBAR_APPLY));
        applyBtn.setBackground(background);
        applyBtn.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                Main.save(EditorLeftMenu.this.skin);
                Main.showApplySkinDialog(EditorLeftMenu.this.skin.getFilename());
            }
        });
        applyBtnPanel.add(applyBtn);

        JButton backupBtn = new JButton(GUIStrings.keyToLocatedString(GUIStrings.KEY_MENUBAR_BACKUP));
        backupBtn.setBackground(background);
        backupBtn.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                Main.applyBackup();
            }
        });
        applyBtnPanel.add(backupBtn);

        this.leftHideBtn = new JButton();
        this.leftHideBtn.setText(GUIStrings.keyToLocatedString(GUIStrings.KEY_EDITOR_SHOWHIDEMENU));
        this.leftHideBtn.setOpaque(false);
        this.leftHideBtn.addActionListener(new ActionListener() {
            private boolean hidden;

            @Override
            public void actionPerformed(ActionEvent e) {
                if (!this.hidden) {
                    this.hidden = true;
                    top.setVisible(false);
                    buttonPanel.setVisible(false);
                    btm.remove(EditorLeftMenu.this.leftHideBtn);
                    btm.add(EditorLeftMenu.this.leftHideBtn, BorderLayout.WEST);
                    btm.setOpaque(false);
                    applyBtnPanel.setVisible(false);
                    EditorLeftMenu.this.leftHideBtn.grabFocus();

                } else {
                    this.hidden = false;
                    top.setVisible(true);
                    buttonPanel.setVisible(true);
                    btm.remove(EditorLeftMenu.this.leftHideBtn);
                    btm.add(EditorLeftMenu.this.leftHideBtn, BorderLayout.EAST);
                    btm.setOpaque(true);
                    applyBtnPanel.setVisible(true);
                    EditorLeftMenu.this.leftHideBtn.grabFocus();
                }
            }
        });
        this.leftHideBtn.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                switch (e.getKeyCode()) {
                    case KeyEvent.VK_LEFT:
                        EditorLeftMenu.this.leftHideBtn.doClick();
                        EditorLeftMenu.this.leftHideBtn.grabFocus();
                        break;
                    case KeyEvent.VK_RIGHT:
                        EditorLeftMenu.this.leftHideBtn.doClick();
                        EditorLeftMenu.this.buttons[0].grabFocus();
                        break;

                    default:
                        break;
                }
            }
        });

        btm.add(this.leftHideBtn, BorderLayout.EAST);
    }