private void create(final String skinname) {
        JPanel topPanel = new JPanel();
        topPanel.setBackground(GUIConstants.DEFAULT_BACKGROUND);
        String tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_RENAMEDIALOG_TITLE);
        topPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(5, 5, 0, 5),
                BorderFactory.createTitledBorder(tmp)));
        topPanel.setLayout(new BorderLayout());
        this.basePanel.add(topPanel);

        {
            SimpleAttributeSet center = new SimpleAttributeSet();
            StyleConstants.setAlignment(center, StyleConstants.ALIGN_CENTER);

            JTextPane mainTextpane = new JTextPane();
            mainTextpane.setText(GUIStrings.keyToLocatedString(GUIStrings.KEY_RENAMEDIALOG_MSG));
            mainTextpane.setEditable(false);
            mainTextpane.setBorder(BorderFactory.createEmptyBorder(20, 0, 10, 0));
            mainTextpane.setFont(GUIConstants.DEFAULT_MESSAGE_FONT);
            mainTextpane.setBackground(GUIConstants.DEFAULT_BACKGROUND);
            topPanel.add(mainTextpane, BorderLayout.NORTH);

            StyledDocument doc = mainTextpane.getStyledDocument();
            doc.setParagraphAttributes(0, doc.getLength(), center, false);
        }

        JPanel inputPanel = new JPanel();
        inputPanel.setBackground(GUIConstants.DEFAULT_BACKGROUND);
        inputPanel.setBorder(new EmptyBorder(5, 0, 0, 0));
        topPanel.add(inputPanel, BorderLayout.CENTER);

        this.textFieldName = new JTextField();
        this.textFieldName.setColumns(25);
        this.textFieldName.setText(skinname);
        this.textFieldName.addKeyListener(new KeyAdapter() {

            @Override
            public void keyReleased(KeyEvent e) {
                while ((RenameDialog.this.textFieldName.getText().length() > 0)
                        && (!RenameDialog.this.textFieldName.getText().matches(Constants.SKIN_NAME_REGEX) || (RenameDialog.this.textFieldName
                                .getText().length() > Constants.SKIN_INPUT_MAXCHARS))) {
                    RenameDialog.this.textFieldName.setText(RenameDialog.this.textFieldName.getText().substring(0,
                            RenameDialog.this.textFieldName.getText().length() - 1));
                }

                if (!RenameDialog.this.textFieldName.getText().equals("")
                        && Files.exists(Constants.PROGRAM_SKINS_PATH.resolve((RenameDialog.this.textFieldName.getText()).trim()),
                                LinkOption.NOFOLLOW_LINKS)) {
                    RenameDialog.this.textFieldName.setBackground(GUIConstants.WARNING_BG);

                } else {
                    RenameDialog.this.textFieldName.setBackground(Color.WHITE);
                }
            }
        });
        inputPanel.add(this.textFieldName);

        JPanel buttonPanel = new JPanel();
        buttonPanel.setBackground(GUIConstants.DEFAULT_BACKGROUND);
        buttonPanel.setLayout(new BorderLayout());
        this.basePanel.add(buttonPanel, BorderLayout.SOUTH);

        JPanel navbuttons = new JPanel();
        navbuttons.setBackground(GUIConstants.DEFAULT_BACKGROUND);
        navbuttons.setLayout(new FlowLayout(FlowLayout.RIGHT));
        buttonPanel.add(navbuttons, BorderLayout.EAST);

        {
            final JButton okButton = new JButton(GUIStrings.keyToLocatedString(GUIStrings.KEY_RENAMEDIALOG_OK));
            okButton.setBackground(GUIConstants.DEFAULT_BACKGROUND);
            okButton.addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent arg0) {
                    okButton.setEnabled(false);
                    Main.renameSkin(skinname, RenameDialog.this.textFieldName.getText());
                    dispose();
                }
            });
            navbuttons.add(okButton);

            JButton cancelButton = new JButton(GUIStrings.keyToLocatedString(GUIStrings.KEY_RENAMEDIALOG_CANCEL));
            cancelButton.setBackground(GUIConstants.DEFAULT_BACKGROUND);
            cancelButton.addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent arg0) {
                    dispose();
                }
            });
            navbuttons.add(cancelButton);
        }
    }