Search in sources :

Example 46 with Theme

use of com.codename1.ui.util.xml.Theme in project CodenameOne by codenameone.

the class AddThemeEntry method initComponents.

/**
 * 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.
 */
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
    buttonGroup1 = new javax.swing.ButtonGroup();
    jLabel1 = new javax.swing.JLabel();
    componentName = new javax.swing.JComboBox();
    previewPane = new javax.swing.JPanel();
    jLabel6 = new javax.swing.JLabel();
    addTabs = new javax.swing.JTabbedPane();
    jPanel3 = new javax.swing.JPanel();
    jLabel23 = new javax.swing.JLabel();
    imagesCombo = new javax.swing.JComboBox();
    addNewImage = new javax.swing.JButton();
    jLabel16 = new javax.swing.JLabel();
    backgroundType = new javax.swing.JComboBox();
    jLabel18 = new javax.swing.JLabel();
    gradientStartColor = new javax.swing.JTextField();
    changeGradientStartColorButton = new javax.swing.JButton();
    gradientEndColor = new javax.swing.JTextField();
    changeGradientEndColorButton = new javax.swing.JButton();
    jLabel19 = new javax.swing.JLabel();
    gradientX = new javax.swing.JSpinner();
    gradientY = new javax.swing.JSpinner();
    gradientSize = new javax.swing.JSpinner();
    deriveBackground = new javax.swing.JCheckBox();
    deriveHelp = new javax.swing.JButton();
    backgroundHelp = new javax.swing.JButton();
    jLabel2 = new javax.swing.JLabel();
    jLabel14 = new javax.swing.JLabel();
    jPanel1 = new javax.swing.JPanel();
    colorValueFG = new javax.swing.JTextField();
    changeColorButtonFG = new javax.swing.JButton();
    deriveForegroundColor = new javax.swing.JCheckBox();
    jLabel3 = new javax.swing.JLabel();
    colorValueBG = new javax.swing.JTextField();
    changeColorButtonBG = new javax.swing.JButton();
    jLabel4 = new javax.swing.JLabel();
    deriveBackgroundColor = new javax.swing.JCheckBox();
    deriveTransparency = new javax.swing.JCheckBox();
    jLabel5 = new javax.swing.JLabel();
    transparencyValue = new javax.swing.JSpinner();
    deriveHelp1 = new javax.swing.JButton();
    colorHelp = new javax.swing.JButton();
    jLabel15 = new javax.swing.JLabel();
    jLabel21 = new javax.swing.JLabel();
    jPanel2 = new javax.swing.JPanel();
    jLabel20 = new javax.swing.JLabel();
    alignmentCombo = new javax.swing.JComboBox();
    deriveAlignment = new javax.swing.JCheckBox();
    deriveHelp2 = new javax.swing.JButton();
    alignHelp = new javax.swing.JButton();
    jPanel5 = new javax.swing.JPanel();
    jLabel8 = new javax.swing.JLabel();
    paddingLeft = new javax.swing.JSpinner();
    jLabel9 = new javax.swing.JLabel();
    paddingRight = new javax.swing.JSpinner();
    jLabel10 = new javax.swing.JLabel();
    paddingTop = new javax.swing.JSpinner();
    jLabel11 = new javax.swing.JLabel();
    paddingBottom = new javax.swing.JSpinner();
    derivePadding = new javax.swing.JCheckBox();
    deriveHelp3 = new javax.swing.JButton();
    paddingHelp = new javax.swing.JButton();
    paddingLeftUnit = new javax.swing.JComboBox();
    paddingRightUnit = new javax.swing.JComboBox();
    paddingTopUnit = new javax.swing.JComboBox();
    paddingBottomUnit = new javax.swing.JComboBox();
    jPanel6 = new javax.swing.JPanel();
    jLabel17 = new javax.swing.JLabel();
    marginLeft = new javax.swing.JSpinner();
    jLabel24 = new javax.swing.JLabel();
    marginRight = new javax.swing.JSpinner();
    jLabel25 = new javax.swing.JLabel();
    marginTop = new javax.swing.JSpinner();
    jLabel26 = new javax.swing.JLabel();
    marginBottom = new javax.swing.JSpinner();
    deriveMargin = new javax.swing.JCheckBox();
    deriveHelp4 = new javax.swing.JButton();
    marginHelp = new javax.swing.JButton();
    marginLeftUnit = new javax.swing.JComboBox();
    marginRightUnit = new javax.swing.JComboBox();
    marginTopUnit = new javax.swing.JComboBox();
    marginBottomUnit = new javax.swing.JComboBox();
    jPanel8 = new javax.swing.JPanel();
    borderLabel = new com.codename1.ui.resource.util.CodenameOneComponentWrapper(new com.codename1.ui.Label("Border"));
    customizeBorder = new javax.swing.JButton();
    deriveBorder = new javax.swing.JCheckBox();
    imageBorderWizard = new javax.swing.JButton();
    jScrollPane1 = new javax.swing.JScrollPane();
    jTextArea1 = new javax.swing.JTextArea();
    deriveHelp5 = new javax.swing.JButton();
    borderHelp = new javax.swing.JButton();
    jPanel10 = new javax.swing.JPanel();
    baseStyle = new javax.swing.JComboBox();
    baseStyleType = new javax.swing.JComboBox();
    defineAttribute = new javax.swing.JCheckBox();
    deriveHelp6 = new javax.swing.JButton();
    jLabel22 = new javax.swing.JLabel();
    jPanel7 = new javax.swing.JPanel();
    bitmapFont = new javax.swing.JRadioButton();
    systemFont = new javax.swing.JRadioButton();
    bitmapFontValue = new javax.swing.JComboBox();
    addNewBitmapFont = new javax.swing.JButton();
    fontFace = new javax.swing.JComboBox();
    fontStyle = new javax.swing.JComboBox();
    fontSize = new javax.swing.JComboBox();
    deriveFont = new javax.swing.JCheckBox();
    textDecorationCombo = new javax.swing.JComboBox();
    deriveTextDecoration = new javax.swing.JCheckBox();
    jLabel7 = new javax.swing.JLabel();
    deriveHelp7 = new javax.swing.JButton();
    fontHelp = new javax.swing.JButton();
    jLabel12 = new javax.swing.JLabel();
    trueTypeFont = new javax.swing.JComboBox();
    jLabel13 = new javax.swing.JLabel();
    trueTypeFontSizeOption = new javax.swing.JComboBox();
    trueTypeFontSizeValue = new javax.swing.JSpinner();
    jScrollPane2 = new javax.swing.JScrollPane();
    help = new javax.swing.JTextPane();
    styleType = new javax.swing.JLabel();
    styleHelp = new javax.swing.JButton();
    videoTutorial = new javax.swing.JButton();
    FormListener formListener = new FormListener();
    // NOI18N
    setName("Form");
    jLabel1.setText("Component");
    // NOI18N
    jLabel1.setName("jLabel1");
    componentName.setEditable(true);
    // NOI18N
    componentName.setName("componentName");
    componentName.setPrototypeDisplayValue("XXXXXXXXXXXXXX");
    componentName.addActionListener(formListener);
    // NOI18N
    previewPane.setName("previewPane");
    previewPane.setLayout(new java.awt.BorderLayout());
    jLabel6.setText("Preview");
    // NOI18N
    jLabel6.setName("jLabel6");
    // NOI18N
    addTabs.setName("addTabs");
    // NOI18N
    jPanel3.setName("jPanel3");
    jPanel3.setOpaque(false);
    jLabel23.setText("Image");
    // NOI18N
    jLabel23.setName("jLabel23");
    imagesCombo.setEnabled(false);
    // NOI18N
    imagesCombo.setName("imagesCombo");
    imagesCombo.addActionListener(formListener);
    addNewImage.setText("...");
    addNewImage.setEnabled(false);
    // NOI18N
    addNewImage.setName("addNewImage");
    addNewImage.addActionListener(formListener);
    jLabel16.setText("Type");
    // NOI18N
    jLabel16.setName("jLabel16");
    backgroundType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "IMAGE_SCALED", "IMAGE_SCALED_FILL", "IMAGE_SCALED_FIT", "IMAGE_TILE_BOTH", "IMAGE_TILE_VERTICAL_ALIGN_LEFT", "IMAGE_TILE_VERTICAL_ALIGN_CENTER", "IMAGE_TILE_VERTICAL_ALIGN_RIGHT", "IMAGE_TILE_HORIZONTAL_ALIGN_TOP", "IMAGE_TILE_HORIZONTAL_ALIGN_CENTER", "IMAGE_TILE_HORIZONTAL_ALIGN_BOTTOM", "IMAGE_ALIGNED_TOP", "IMAGE_ALIGNED_BOTTOM", "IMAGE_ALIGNED_LEFT", "IMAGE_ALIGNED_RIGHT", "IMAGE_ALIGNED_TOP_LEFT", "IMAGE_ALIGNED_TOP_RIGHT", "IMAGE_ALIGNED_BOTTOM_LEFT", "IMAGE_ALIGNED_BOTTOM_RIGHT", "IMAGE_ALIGNED_CENTER", "GRADIENT_LINEAR_HORIZONTAL", "GRADIENT_LINEAR_VERTICAL", "GRADIENT_RADIAL", "NONE" }));
    backgroundType.setEnabled(false);
    // NOI18N
    backgroundType.setName("backgroundType");
    backgroundType.addActionListener(formListener);
    jLabel18.setText("Gradient");
    // NOI18N
    jLabel18.setName("jLabel18");
    gradientStartColor.setText("000000");
    gradientStartColor.setEnabled(false);
    // NOI18N
    gradientStartColor.setName("gradientStartColor");
    changeGradientStartColorButton.setText("...");
    changeGradientStartColorButton.setEnabled(false);
    // NOI18N
    changeGradientStartColorButton.setName("changeGradientStartColorButton");
    changeGradientStartColorButton.addActionListener(formListener);
    gradientEndColor.setText("000000");
    gradientEndColor.setEnabled(false);
    // NOI18N
    gradientEndColor.setName("gradientEndColor");
    changeGradientEndColorButton.setText("...");
    changeGradientEndColorButton.setEnabled(false);
    // NOI18N
    changeGradientEndColorButton.setName("changeGradientEndColorButton");
    changeGradientEndColorButton.addActionListener(formListener);
    jLabel19.setText("Gradient X/Y");
    // NOI18N
    jLabel19.setName("jLabel19");
    gradientX.setToolTipText("Gradient Relative X");
    gradientX.setEnabled(false);
    // NOI18N
    gradientX.setName("gradientX");
    gradientX.addChangeListener(formListener);
    gradientY.setToolTipText("Gradient Relative Y");
    gradientY.setEnabled(false);
    // NOI18N
    gradientY.setName("gradientY");
    gradientY.addChangeListener(formListener);
    gradientSize.setToolTipText("Gradient Relaitve Size");
    gradientSize.setEnabled(false);
    // NOI18N
    gradientSize.setName("gradientSize");
    gradientSize.addChangeListener(formListener);
    deriveBackground.setSelected(true);
    deriveBackground.setText("Derive");
    // NOI18N
    deriveBackground.setName("deriveBackground");
    deriveBackground.addActionListener(formListener);
    deriveHelp.setText("Derive Help");
    // NOI18N
    deriveHelp.setName("deriveHelp");
    deriveHelp.addActionListener(formListener);
    backgroundHelp.setText("Background Help");
    // NOI18N
    backgroundHelp.setName("backgroundHelp");
    backgroundHelp.addActionListener(formListener);
    jLabel2.setText("Gradient Size");
    // NOI18N
    jLabel2.setName("jLabel2");
    jLabel14.setText("<html><body><b>Notice:</b> If a border is defined the background will have no effect! Set the border<br>property to Empty to override the border of a base style");
    // NOI18N
    jLabel14.setName("jLabel14");
    org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
    jPanel3.setLayout(jPanel3Layout);
    jPanel3Layout.setHorizontalGroup(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel3Layout.createSequentialGroup().addContainerGap().add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jLabel14, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(jPanel3Layout.createSequentialGroup().add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jLabel16).add(jLabel23).add(jLabel18).add(jLabel19).add(jLabel2)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(gradientSize, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(jPanel3Layout.createSequentialGroup().add(imagesCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 325, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(addNewImage)).add(backgroundType, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 325, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(jPanel3Layout.createSequentialGroup().add(gradientStartColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 54, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(changeGradientStartColorButton).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(gradientEndColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 52, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(changeGradientEndColorButton)).add(jPanel3Layout.createSequentialGroup().add(gradientX, 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(gradientY, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))).add(deriveBackground)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 383, Short.MAX_VALUE).add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(org.jdesktop.layout.GroupLayout.TRAILING, backgroundHelp).add(org.jdesktop.layout.GroupLayout.TRAILING, deriveHelp)).addContainerGap()));
    jPanel3Layout.linkSize(new java.awt.Component[] { gradientEndColor, gradientSize, gradientStartColor, gradientX, gradientY }, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel3Layout.linkSize(new java.awt.Component[] { backgroundType, imagesCombo }, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel3Layout.linkSize(new java.awt.Component[] { backgroundHelp, deriveHelp }, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel3Layout.setVerticalGroup(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel3Layout.createSequentialGroup().add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel3Layout.createSequentialGroup().add(4, 4, 4).add(deriveHelp).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(backgroundHelp)).add(jPanel3Layout.createSequentialGroup().add(15, 15, 15).add(jLabel14, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(18, 18, 18).add(deriveBackground).addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED).add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel16).add(backgroundType, 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(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel23).add(imagesCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(addNewImage)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER).add(jLabel18).add(gradientStartColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(changeGradientStartColorButton).add(changeGradientEndColorButton).add(gradientEndColor, 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(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER).add(jLabel19).add(gradientX, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(gradientY, 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(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER).add(jLabel2).add(gradientSize, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))).addContainerGap(199, Short.MAX_VALUE)));
    addTabs.addTab("Background", jPanel3);
    // NOI18N
    jPanel1.setName("jPanel1");
    jPanel1.setOpaque(false);
    colorValueFG.setText("000000");
    colorValueFG.setEnabled(false);
    // NOI18N
    colorValueFG.setName("colorValueFG");
    changeColorButtonFG.setText("...");
    changeColorButtonFG.setEnabled(false);
    // NOI18N
    changeColorButtonFG.setName("changeColorButtonFG");
    changeColorButtonFG.addActionListener(formListener);
    deriveForegroundColor.setSelected(true);
    deriveForegroundColor.setText("Derive Foreground");
    // NOI18N
    deriveForegroundColor.setName("deriveForegroundColor");
    deriveForegroundColor.addActionListener(formListener);
    jLabel3.setText("Background");
    // NOI18N
    jLabel3.setName("jLabel3");
    colorValueBG.setText("000000");
    colorValueBG.setEnabled(false);
    // NOI18N
    colorValueBG.setName("colorValueBG");
    changeColorButtonBG.setText("...");
    changeColorButtonBG.setEnabled(false);
    // NOI18N
    changeColorButtonBG.setName("changeColorButtonBG");
    changeColorButtonBG.addActionListener(formListener);
    jLabel4.setText("Foreground");
    // NOI18N
    jLabel4.setName("jLabel4");
    deriveBackgroundColor.setSelected(true);
    deriveBackgroundColor.setText("Derive Background");
    // NOI18N
    deriveBackgroundColor.setName("deriveBackgroundColor");
    deriveBackgroundColor.addActionListener(formListener);
    deriveTransparency.setSelected(true);
    deriveTransparency.setText("Derive Transparency");
    // NOI18N
    deriveTransparency.setName("deriveTransparency");
    deriveTransparency.addActionListener(formListener);
    jLabel5.setText("Transparency");
    // NOI18N
    jLabel5.setName("jLabel5");
    transparencyValue.setEnabled(false);
    // NOI18N
    transparencyValue.setName("transparencyValue");
    transparencyValue.addChangeListener(formListener);
    deriveHelp1.setText("Derive Help");
    // NOI18N
    deriveHelp1.setName("deriveHelp1");
    deriveHelp1.addActionListener(formListener);
    colorHelp.setText("Color Help");
    // NOI18N
    colorHelp.setName("colorHelp");
    colorHelp.addActionListener(formListener);
    jLabel15.setText("<html><body><b>Notice:</b> If a border is defined the background will have no effect! Set the border<br>property to Empty to override the border of a base style");
    // NOI18N
    jLabel15.setName("jLabel15");
    jLabel21.setText("<html><body><b>Notice:</b> some types of backgrounds might override the background color.<br/>Transparency should be 255 to achieve full opacity");
    // NOI18N
    jLabel21.setName("jLabel21");
    org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel1Layout.createSequentialGroup().addContainerGap().add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel1Layout.createSequentialGroup().addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jLabel4).add(jLabel3).add(jLabel5)).add(12, 12, 12).add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel1Layout.createSequentialGroup().add(colorValueFG, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(changeColorButtonFG)).add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false).add(org.jdesktop.layout.GroupLayout.LEADING, transparencyValue).add(org.jdesktop.layout.GroupLayout.LEADING, jPanel1Layout.createSequentialGroup().add(colorValueBG, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 66, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(changeColorButtonBG)))).add(0, 735, Short.MAX_VALUE)).add(jPanel1Layout.createSequentialGroup().add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jLabel15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(deriveForegroundColor).add(deriveBackgroundColor).add(deriveTransparency).add(jLabel21, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 464, Short.MAX_VALUE).add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(org.jdesktop.layout.GroupLayout.TRAILING, deriveHelp1).add(org.jdesktop.layout.GroupLayout.TRAILING, colorHelp)))).addContainerGap()));
    jPanel1Layout.linkSize(new java.awt.Component[] { colorHelp, deriveHelp1 }, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel1Layout.createSequentialGroup().add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel1Layout.createSequentialGroup().addContainerGap().add(jLabel15, 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(jLabel21, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(20, 20, 20).add(deriveForegroundColor).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(colorValueFG, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(changeColorButtonFG).add(jLabel4)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(deriveBackgroundColor).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(colorValueBG, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(changeColorButtonBG).add(jLabel3)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(deriveTransparency).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER).add(jLabel5).add(transparencyValue, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))).add(jPanel1Layout.createSequentialGroup().add(deriveHelp1).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(colorHelp))).addContainerGap(181, Short.MAX_VALUE)));
    addTabs.addTab("Color", jPanel1);
    // NOI18N
    jPanel2.setName("jPanel2");
    jPanel2.setOpaque(false);
    jLabel20.setText("Alignment");
    // NOI18N
    jLabel20.setName("jLabel20");
    alignmentCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Left", "Right", "Center" }));
    alignmentCombo.setEnabled(false);
    // NOI18N
    alignmentCombo.setName("alignmentCombo");
    alignmentCombo.addActionListener(formListener);
    deriveAlignment.setSelected(true);
    deriveAlignment.setText("Derive");
    // NOI18N
    deriveAlignment.setName("deriveAlignment");
    deriveAlignment.addActionListener(formListener);
    deriveHelp2.setText("Derive Help");
    // NOI18N
    deriveHelp2.setName("deriveHelp2");
    deriveHelp2.addActionListener(formListener);
    alignHelp.setText("Alignment Help");
    // NOI18N
    alignHelp.setName("alignHelp");
    alignHelp.addActionListener(formListener);
    org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
    jPanel2.setLayout(jPanel2Layout);
    jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel2Layout.createSequentialGroup().addContainerGap().add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel2Layout.createSequentialGroup().add(deriveAlignment).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 779, Short.MAX_VALUE).add(deriveHelp2)).add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2Layout.createSequentialGroup().add(jLabel20).add(9, 9, 9).add(alignmentCombo, 0, 774, Short.MAX_VALUE).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(alignHelp))).addContainerGap()));
    jPanel2Layout.linkSize(new java.awt.Component[] { alignHelp, deriveHelp2 }, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel2Layout.createSequentialGroup().addContainerGap().add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(deriveAlignment).add(deriveHelp2)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel20).add(alignmentCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(alignHelp)).addContainerGap(394, Short.MAX_VALUE)));
    addTabs.addTab("Alignment", jPanel2);
    // NOI18N
    jPanel5.setName("jPanel5");
    jPanel5.setOpaque(false);
    jLabel8.setText("Left");
    // NOI18N
    jLabel8.setName("jLabel8");
    paddingLeft.setEnabled(false);
    // NOI18N
    paddingLeft.setName("paddingLeft");
    paddingLeft.addChangeListener(formListener);
    jLabel9.setText("Right");
    // NOI18N
    jLabel9.setName("jLabel9");
    paddingRight.setEnabled(false);
    // NOI18N
    paddingRight.setName("paddingRight");
    paddingRight.addChangeListener(formListener);
    jLabel10.setText("Top");
    // NOI18N
    jLabel10.setName("jLabel10");
    paddingTop.setEnabled(false);
    // NOI18N
    paddingTop.setName("paddingTop");
    paddingTop.addChangeListener(formListener);
    jLabel11.setText("Bottom");
    // NOI18N
    jLabel11.setName("jLabel11");
    paddingBottom.setEnabled(false);
    // NOI18N
    paddingBottom.setName("paddingBottom");
    paddingBottom.addChangeListener(formListener);
    derivePadding.setSelected(true);
    derivePadding.setText("Derive");
    // NOI18N
    derivePadding.setName("derivePadding");
    derivePadding.addActionListener(formListener);
    deriveHelp3.setText("Derive Help");
    // NOI18N
    deriveHelp3.setName("deriveHelp3");
    deriveHelp3.addActionListener(formListener);
    paddingHelp.setText("Padding Help");
    // NOI18N
    paddingHelp.setName("paddingHelp");
    paddingHelp.addActionListener(formListener);
    paddingLeftUnit.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pixels", "Screen Size Percentage", "Millimeters (approximate)" }));
    // NOI18N
    paddingLeftUnit.setName("paddingLeftUnit");
    paddingLeftUnit.addActionListener(formListener);
    paddingRightUnit.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pixels", "Screen Size Percentage", "Millimeters (approximate)" }));
    // NOI18N
    paddingRightUnit.setName("paddingRightUnit");
    paddingRightUnit.addActionListener(formListener);
    paddingTopUnit.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pixels", "Screen Size Percentage", "Millimeters (approximate)" }));
    // NOI18N
    paddingTopUnit.setName("paddingTopUnit");
    paddingTopUnit.addActionListener(formListener);
    paddingBottomUnit.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pixels", "Screen Size Percentage", "Millimeters (approximate)" }));
    // NOI18N
    paddingBottomUnit.setName("paddingBottomUnit");
    paddingBottomUnit.addActionListener(formListener);
    org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5);
    jPanel5.setLayout(jPanel5Layout);
    jPanel5Layout.setHorizontalGroup(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel5Layout.createSequentialGroup().add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false).add(jPanel5Layout.createSequentialGroup().add(10, 10, 10).add(derivePadding)).add(jPanel5Layout.createSequentialGroup().addContainerGap().add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jLabel8).add(jLabel9).add(jLabel10).add(jLabel11)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false).add(paddingLeft, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE).add(paddingRight).add(paddingTop).add(paddingBottom)).add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false).add(jPanel5Layout.createSequentialGroup().add(7, 7, 7).add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(org.jdesktop.layout.GroupLayout.TRAILING, paddingRightUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(org.jdesktop.layout.GroupLayout.TRAILING, paddingTopUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(org.jdesktop.layout.GroupLayout.TRAILING, paddingBottomUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))).add(jPanel5Layout.createSequentialGroup().addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(paddingLeftUnit, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 553, Short.MAX_VALUE).add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(org.jdesktop.layout.GroupLayout.TRAILING, paddingHelp).add(org.jdesktop.layout.GroupLayout.TRAILING, deriveHelp3)).addContainerGap()));
    jPanel5Layout.linkSize(new java.awt.Component[] { deriveHelp3, paddingHelp }, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel5Layout.setVerticalGroup(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel5Layout.createSequentialGroup().addContainerGap().add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(derivePadding).add(deriveHelp3)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel8).add(paddingLeft, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(paddingLeftUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(paddingHelp)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel9).add(paddingRight, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(paddingRightUnit, 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(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel10).add(paddingTop, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(paddingTopUnit, 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(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel11).add(paddingBottom, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(paddingBottomUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).addContainerGap(288, Short.MAX_VALUE)));
    jPanel5Layout.linkSize(new java.awt.Component[] { paddingBottom, paddingLeft, paddingRight, paddingTop }, org.jdesktop.layout.GroupLayout.VERTICAL);
    addTabs.addTab("Padding", jPanel5);
    // NOI18N
    jPanel6.setName("jPanel6");
    jPanel6.setOpaque(false);
    jLabel17.setText("Left");
    // NOI18N
    jLabel17.setName("jLabel17");
    marginLeft.setEnabled(false);
    // NOI18N
    marginLeft.setName("marginLeft");
    marginLeft.addChangeListener(formListener);
    jLabel24.setText("Right");
    // NOI18N
    jLabel24.setName("jLabel24");
    marginRight.setEnabled(false);
    // NOI18N
    marginRight.setName("marginRight");
    marginRight.addChangeListener(formListener);
    jLabel25.setText("Top");
    // NOI18N
    jLabel25.setName("jLabel25");
    marginTop.setEnabled(false);
    // NOI18N
    marginTop.setName("marginTop");
    marginTop.addChangeListener(formListener);
    jLabel26.setText("Bottom");
    // NOI18N
    jLabel26.setName("jLabel26");
    marginBottom.setEnabled(false);
    // NOI18N
    marginBottom.setName("marginBottom");
    marginBottom.addChangeListener(formListener);
    deriveMargin.setSelected(true);
    deriveMargin.setText("Derive");
    // NOI18N
    deriveMargin.setName("deriveMargin");
    deriveMargin.addActionListener(formListener);
    deriveHelp4.setText("Derive Help");
    // NOI18N
    deriveHelp4.setName("deriveHelp4");
    deriveHelp4.addActionListener(formListener);
    marginHelp.setText("Margin Help");
    // NOI18N
    marginHelp.setName("marginHelp");
    marginHelp.addActionListener(formListener);
    marginLeftUnit.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pixels", "Screen Size Percentage", "Millimeters (approximate)" }));
    // NOI18N
    marginLeftUnit.setName("marginLeftUnit");
    marginLeftUnit.addActionListener(formListener);
    marginRightUnit.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pixels", "Screen Size Percentage", "Millimeters (approximate)" }));
    // NOI18N
    marginRightUnit.setName("marginRightUnit");
    marginRightUnit.addActionListener(formListener);
    marginTopUnit.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pixels", "Screen Size Percentage", "Millimeters (approximate)" }));
    // NOI18N
    marginTopUnit.setName("marginTopUnit");
    marginTopUnit.addActionListener(formListener);
    marginBottomUnit.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Pixels", "Screen Size Percentage", "Millimeters (approximate)" }));
    // NOI18N
    marginBottomUnit.setName("marginBottomUnit");
    marginBottomUnit.addActionListener(formListener);
    org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6);
    jPanel6.setLayout(jPanel6Layout);
    jPanel6Layout.setHorizontalGroup(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel6Layout.createSequentialGroup().addContainerGap().add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jLabel17).add(jLabel24).add(jLabel25).add(jLabel26)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false).add(marginBottom).add(marginTop).add(marginRight).add(marginLeft, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel6Layout.createSequentialGroup().add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(marginBottomUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(marginTopUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(marginRightUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).add(454, 660, Short.MAX_VALUE)).add(jPanel6Layout.createSequentialGroup().add(marginLeftUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).add(marginHelp).addContainerGap()))).add(jPanel6Layout.createSequentialGroup().add(10, 10, 10).add(deriveMargin).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 793, Short.MAX_VALUE).add(deriveHelp4).addContainerGap()));
    jPanel6Layout.linkSize(new java.awt.Component[] { deriveHelp4, marginHelp }, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel6Layout.linkSize(new java.awt.Component[] { marginBottomUnit, marginLeftUnit, marginRightUnit, marginTopUnit }, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel6Layout.setVerticalGroup(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel6Layout.createSequentialGroup().addContainerGap().add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(deriveMargin).add(deriveHelp4)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER).add(marginLeftUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(marginLeft, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(jLabel17).add(marginHelp)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER).add(jLabel24).add(marginRight, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(marginRightUnit, 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(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER).add(jLabel25).add(marginTop, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(marginTopUnit, 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(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER).add(jLabel26).add(marginBottom, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(marginBottomUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).addContainerGap(316, Short.MAX_VALUE)));
    jPanel6Layout.linkSize(new java.awt.Component[] { marginBottom, marginLeft, marginRight, marginTop }, org.jdesktop.layout.GroupLayout.VERTICAL);
    jPanel6Layout.linkSize(new java.awt.Component[] { marginBottomUnit, marginLeftUnit, marginRightUnit, marginTopUnit }, org.jdesktop.layout.GroupLayout.VERTICAL);
    addTabs.addTab("Margin", jPanel6);
    // NOI18N
    jPanel8.setName("jPanel8");
    jPanel8.setOpaque(false);
    borderLabel.setText("Border");
    // NOI18N
    borderLabel.setName("borderLabel");
    customizeBorder.setText("...");
    customizeBorder.setEnabled(false);
    // NOI18N
    customizeBorder.setName("customizeBorder");
    customizeBorder.addActionListener(formListener);
    deriveBorder.setSelected(true);
    deriveBorder.setText("Derive");
    // NOI18N
    deriveBorder.setName("deriveBorder");
    deriveBorder.addActionListener(formListener);
    imageBorderWizard.setText("Image Border Wizard");
    // NOI18N
    imageBorderWizard.setName("imageBorderWizard");
    imageBorderWizard.addActionListener(formListener);
    jScrollPane1.setBorder(null);
    // NOI18N
    jScrollPane1.setName("jScrollPane1");
    jScrollPane1.setOpaque(false);
    jTextArea1.setColumns(20);
    jTextArea1.setEditable(false);
    jTextArea1.setLineWrap(true);
    jTextArea1.setRows(5);
    jTextArea1.setText("Please notice when using the image border wizard to generate images you are in effect creating additional images in the theme. This means that if you use this wizard you MUST NOT cancel this dialog since the images created by the wizard would remain! You would need to go and delete them (try the \"delete unused images\" option in the menu).\nHaving too many images in the theme can be expensive so try to reuse the same images for multiple component types rather than recreate these images over and over again.");
    jTextArea1.setWrapStyleWord(true);
    jTextArea1.setBorder(null);
    // NOI18N
    jTextArea1.setName("jTextArea1");
    jTextArea1.setOpaque(false);
    jScrollPane1.setViewportView(jTextArea1);
    deriveHelp5.setText("Derive Help");
    // NOI18N
    deriveHelp5.setName("deriveHelp5");
    deriveHelp5.addActionListener(formListener);
    borderHelp.setText("Border Help");
    // NOI18N
    borderHelp.setName("borderHelp");
    borderHelp.addActionListener(formListener);
    org.jdesktop.layout.GroupLayout jPanel8Layout = new org.jdesktop.layout.GroupLayout(jPanel8);
    jPanel8.setLayout(jPanel8Layout);
    jPanel8Layout.setHorizontalGroup(jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel8Layout.createSequentialGroup().addContainerGap().add(jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 939, Short.MAX_VALUE).add(imageBorderWizard).add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel8Layout.createSequentialGroup().add(jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel8Layout.createSequentialGroup().add(deriveBorder).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 681, Short.MAX_VALUE)).add(jPanel8Layout.createSequentialGroup().add(borderLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 715, Short.MAX_VALUE).add(23, 23, 23))).add(61, 61, 61).add(jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel8Layout.createSequentialGroup().add(customizeBorder).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(borderHelp)).add(org.jdesktop.layout.GroupLayout.TRAILING, deriveHelp5)))).addContainerGap()));
    jPanel8Layout.linkSize(new java.awt.Component[] { borderHelp, deriveHelp5 }, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel8Layout.setVerticalGroup(jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel8Layout.createSequentialGroup().addContainerGap().add(jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(deriveBorder).add(deriveHelp5)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(borderLabel).add(customizeBorder).add(borderHelp)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(imageBorderWizard).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 347, Short.MAX_VALUE).addContainerGap()));
    addTabs.addTab("Border", jPanel8);
    // NOI18N
    jPanel10.setName("jPanel10");
    jPanel10.setOpaque(false);
    baseStyle.setEditable(true);
    baseStyle.setEnabled(false);
    // NOI18N
    baseStyle.setName("baseStyle");
    baseStyleType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Unselected", "Selected", "Pressed", "Disabled" }));
    baseStyleType.setEnabled(false);
    // NOI18N
    baseStyleType.setName("baseStyleType");
    defineAttribute.setSelected(true);
    defineAttribute.setText("Override Attribute");
    // NOI18N
    defineAttribute.setName("defineAttribute");
    defineAttribute.addActionListener(formListener);
    deriveHelp6.setText("Derive Help");
    // NOI18N
    deriveHelp6.setName("deriveHelp6");
    deriveHelp6.addActionListener(formListener);
    jLabel22.setText("Please note that deriving to/from builtin components e.g. Button, TextField etc. is unreliable due to cyclic dependencies");
    // NOI18N
    jLabel22.setName("jLabel22");
    org.jdesktop.layout.GroupLayout jPanel10Layout = new org.jdesktop.layout.GroupLayout(jPanel10);
    jPanel10.setLayout(jPanel10Layout);
    jPanel10Layout.setHorizontalGroup(jPanel10Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel10Layout.createSequentialGroup().addContainerGap().add(jPanel10Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel10Layout.createSequentialGroup().add(defineAttribute).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 739, Short.MAX_VALUE).add(deriveHelp6)).add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel10Layout.createSequentialGroup().add(baseStyle, 0, 843, Short.MAX_VALUE).add(18, 18, 18).add(baseStyleType, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).add(jPanel10Layout.createSequentialGroup().add(jLabel22).add(0, 0, Short.MAX_VALUE))).addContainerGap()));
    jPanel10Layout.setVerticalGroup(jPanel10Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel10Layout.createSequentialGroup().addContainerGap().add(jPanel10Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(defineAttribute).add(deriveHelp6)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel10Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(baseStyle, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(baseStyleType, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).add(18, 18, 18).add(jLabel22).addContainerGap(360, Short.MAX_VALUE)));
    addTabs.addTab("Derive", jPanel10);
    // NOI18N
    jPanel7.setName("jPanel7");
    jPanel7.setOpaque(false);
    buttonGroup1.add(bitmapFont);
    bitmapFont.setText("Bitmap Fonts (deprecated!)");
    bitmapFont.setEnabled(false);
    // NOI18N
    bitmapFont.setName("bitmapFont");
    bitmapFont.addActionListener(formListener);
    buttonGroup1.add(systemFont);
    systemFont.setSelected(true);
    systemFont.setText("Standard Font");
    systemFont.setEnabled(false);
    // NOI18N
    systemFont.setName("systemFont");
    systemFont.addActionListener(formListener);
    bitmapFontValue.setEnabled(false);
    // NOI18N
    bitmapFontValue.setName("bitmapFontValue");
    bitmapFontValue.setPrototypeDisplayValue("XXXXXXXXXXXXXXXX");
    bitmapFontValue.addActionListener(formListener);
    addNewBitmapFont.setText("...");
    addNewBitmapFont.setEnabled(false);
    // NOI18N
    addNewBitmapFont.setName("addNewBitmapFont");
    addNewBitmapFont.addActionListener(formListener);
    fontFace.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "SYSTEM", "MONOSPACE", "PROPORTIONAL" }));
    fontFace.setEnabled(false);
    // NOI18N
    fontFace.setName("fontFace");
    fontFace.addActionListener(formListener);
    fontStyle.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "PLAIN", "BOLD", "ITALIC", "BOLD ITALIC" }));
    fontStyle.setEnabled(false);
    // NOI18N
    fontStyle.setName("fontStyle");
    fontStyle.addActionListener(formListener);
    fontSize.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "MEDIUM", "SMALL", "LARGE" }));
    fontSize.setEnabled(false);
    // NOI18N
    fontSize.setName("fontSize");
    fontSize.addActionListener(formListener);
    deriveFont.setSelected(true);
    deriveFont.setText("Derive Font");
    // NOI18N
    deriveFont.setName("deriveFont");
    deriveFont.addActionListener(formListener);
    textDecorationCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "None", "Underline", "Strike Through,", "3D Text Raised", "3D Text Lowered", "3D Shadow North" }));
    textDecorationCombo.setEnabled(false);
    // NOI18N
    textDecorationCombo.setName("textDecorationCombo");
    textDecorationCombo.addActionListener(formListener);
    deriveTextDecoration.setSelected(true);
    deriveTextDecoration.setText("Derive Text Decoration");
    // NOI18N
    deriveTextDecoration.setName("deriveTextDecoration");
    deriveTextDecoration.addActionListener(formListener);
    jLabel7.setText("Text Decoration");
    // NOI18N
    jLabel7.setName("jLabel7");
    deriveHelp7.setText("Derive Help");
    // NOI18N
    deriveHelp7.setName("deriveHelp7");
    deriveHelp7.addActionListener(formListener);
    fontHelp.setText("Font Help");
    // NOI18N
    fontHelp.setName("fontHelp");
    fontHelp.addActionListener(formListener);
    jLabel12.setText("True Type");
    jLabel12.setToolTipText("<html><body>\nTruetype fonts are only supported on some platforms (iOS/Android)<br>\nto use them you need to place the file in the src directory next to the<br>\nresource file and make sure the name of the font is correct in the<br>\ntext field (for iOS). When unavailable the standard fonts will be used.<br>\n<b>Important</b> the file name must have a .ttf extension!");
    // NOI18N
    jLabel12.setName("jLabel12");
    trueTypeFont.setToolTipText("<html><body>\nTruetype fonts are only supported on some platforms (iOS/Android)<br>\nto use them you need to place the file in the src directory next to the<br>\nresource file and make sure the name of the font is correct in the<br>\ntext field (for iOS). When unavailable the standard fonts will be used.<br>\n<b>Important</b> the file name must have a .ttf extension!");
    trueTypeFont.setEnabled(false);
    // NOI18N
    trueTypeFont.setName("trueTypeFont");
    trueTypeFont.addActionListener(formListener);
    jLabel13.setText("True Type Size");
    // NOI18N
    jLabel13.setToolTipText("<html><body>\nTruetype fonts are only supported on some platforms (iOS/Android)<br>\nto use them you need to place the file in the src directory next to the<br>\nresource file and make sure the name of the font is correct in the<br>\ntext field (for iOS). When unavailable the standard fonts will be used.<br>\n<b>Important</b> the file name must have a .ttf extension!");
    // NOI18N
    jLabel13.setName("jLabel13");
    trueTypeFontSizeOption.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Small", "Medium", "Large", "Millimeters", "Pixels" }));
    trueTypeFontSizeOption.setSelectedIndex(1);
    trueTypeFontSizeOption.setToolTipText("<html><body>\nTruetype fonts are only supported on some platforms (iOS/Android)<br>\nto use them you need to place the file in the src directory next to the<br>\nresource file and make sure the name of the font is correct in the<br>\ntext field (for iOS). When unavailable the standard fonts will be used.<br>\n<b>Important</b> the file name must have a .ttf extension!");
    trueTypeFontSizeOption.setEnabled(false);
    // NOI18N
    trueTypeFontSizeOption.setName("trueTypeFontSizeOption");
    trueTypeFontSizeOption.addActionListener(formListener);
    trueTypeFontSizeValue.setToolTipText("<html><body>\nTruetype fonts are only supported on some platforms (iOS/Android)<br>\nto use them you need to place the file in the src directory next to the<br>\nresource file and make sure the name of the font is correct in the<br>\ntext field (for iOS). When unavailable the standard fonts will be used.<br>\n<b>Important</b> the file name must have a .ttf extension!");
    trueTypeFontSizeValue.setEnabled(false);
    // NOI18N
    trueTypeFontSizeValue.setName("trueTypeFontSizeValue");
    trueTypeFontSizeValue.addChangeListener(formListener);
    org.jdesktop.layout.GroupLayout jPanel7Layout = new org.jdesktop.layout.GroupLayout(jPanel7);
    jPanel7.setLayout(jPanel7Layout);
    jPanel7Layout.setHorizontalGroup(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel7Layout.createSequentialGroup().addContainerGap().add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel7Layout.createSequentialGroup().add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING).add(org.jdesktop.layout.GroupLayout.LEADING, deriveFont).add(org.jdesktop.layout.GroupLayout.LEADING, jPanel7Layout.createSequentialGroup().add(systemFont).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(bitmapFont))).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING).add(fontHelp).add(deriveHelp7)).addContainerGap()).add(jPanel7Layout.createSequentialGroup().add(deriveTextDecoration).addContainerGap(812, Short.MAX_VALUE)).add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel7Layout.createSequentialGroup().add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING).add(jPanel7Layout.createSequentialGroup().add(jLabel7).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(textDecorationCombo, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)).add(org.jdesktop.layout.GroupLayout.LEADING, jPanel7Layout.createSequentialGroup().add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jLabel13).add(jLabel12).add(fontFace, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 157, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(trueTypeFont, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).add(trueTypeFontSizeOption, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).add(fontStyle, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(fontSize, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).add(trueTypeFontSizeValue))).add(org.jdesktop.layout.GroupLayout.LEADING, bitmapFontValue, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(addNewBitmapFont).add(387, 387, 387)))));
    jPanel7Layout.linkSize(new java.awt.Component[] { bitmapFont, systemFont }, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel7Layout.linkSize(new java.awt.Component[] { deriveHelp7, fontHelp }, org.jdesktop.layout.GroupLayout.HORIZONTAL);
    jPanel7Layout.setVerticalGroup(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(jPanel7Layout.createSequentialGroup().addContainerGap().add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING).add(jPanel7Layout.createSequentialGroup().add(deriveFont).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(bitmapFont).add(systemFont))).add(jPanel7Layout.createSequentialGroup().add(deriveHelp7).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(fontHelp))).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(fontFace, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(fontSize, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(fontStyle, 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(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel12).add(trueTypeFont, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).add(9, 9, 9).add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER).add(trueTypeFontSizeValue, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(trueTypeFontSizeOption, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(jLabel13)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(addNewBitmapFont).add(bitmapFontValue, 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(deriveTextDecoration).addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED).add(jPanel7Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel7).add(textDecorationCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)).addContainerGap(227, Short.MAX_VALUE)));
    addTabs.addTab("Font", jPanel7);
    // NOI18N
    jScrollPane2.setName("jScrollPane2");
    // NOI18N
    help.setContentType("text/html");
    help.setEditable(false);
    // NOI18N
    help.setName("help");
    jScrollPane2.setViewportView(help);
    addTabs.addTab("Help", jScrollPane2);
    styleType.setText("Unselected");
    // NOI18N
    styleType.setName("styleType");
    styleHelp.setText("Component Help");
    // NOI18N
    styleHelp.setName("styleHelp");
    styleHelp.addActionListener(formListener);
    videoTutorial.setText("Video Tutorial");
    // NOI18N
    videoTutorial.setName("videoTutorial");
    videoTutorial.addActionListener(formListener);
    org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
    this.setLayout(layout);
    layout.setHorizontalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup().addContainerGap().add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING).add(org.jdesktop.layout.GroupLayout.LEADING, previewPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).add(org.jdesktop.layout.GroupLayout.LEADING, addTabs).add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup().add(jLabel1).addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED).add(componentName, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).add(18, 18, 18).add(styleType).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(styleHelp).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(videoTutorial)).add(org.jdesktop.layout.GroupLayout.LEADING, jLabel6)).addContainerGap()));
    layout.setVerticalGroup(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(layout.createSequentialGroup().addContainerGap().add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE).add(jLabel1).add(componentName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).add(styleType).add(styleHelp).add(videoTutorial)).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(addTabs).addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED).add(jLabel6).addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED).add(previewPane, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 92, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE).addContainerGap()));
}
Also used : JTabbedPane(javax.swing.JTabbedPane) DefaultComboBoxModel(javax.swing.DefaultComboBoxModel) JComboBox(javax.swing.JComboBox) BorderLayout(java.awt.BorderLayout) JButton(javax.swing.JButton) CodenameOneComponentWrapper(com.codename1.ui.resource.util.CodenameOneComponentWrapper)

Example 47 with Theme

use of com.codename1.ui.util.xml.Theme in project CodenameOne by codenameone.

the class Resources method loadTheme.

Hashtable loadTheme(String id, boolean newerVersion) throws IOException {
    Hashtable theme = new Hashtable();
    theme.put("name", id);
    // marks the theme as uninitialized so we can finish "wiring" cached resources
    theme.put("uninitialized", Boolean.TRUE);
    int size = input.readShort();
    for (int iter = 0; iter < size; iter++) {
        String key = input.readUTF();
        if (key.startsWith("@")) {
            theme.put(key, input.readUTF());
            continue;
        }
        // if this is a simple numeric value
        if (key.endsWith("Color")) {
            theme.put(key, Integer.toHexString(input.readInt()));
            continue;
        }
        if (key.endsWith("align") || key.endsWith("textDecoration")) {
            theme.put(key, new Integer(input.readShort()));
            continue;
        }
        // if this is a short numeric value for transparency
        if (key.endsWith("ransparency")) {
            theme.put(key, "" + (input.readByte() & 0xff));
            continue;
        }
        if (key.endsWith("opacity")) {
            theme.put(key, "" + (input.readInt() & 0xff));
            continue;
        }
        // if this is a padding or margin then we will have the 4 values as bytes
        if (key.endsWith("adding") || key.endsWith("argin")) {
            if (minorVersion > 7) {
                float p1 = input.readFloat();
                float p2 = input.readFloat();
                float p3 = input.readFloat();
                float p4 = input.readFloat();
                theme.put(key, "" + p1 + "," + p2 + "," + p3 + "," + p4);
            } else {
                int p1 = input.readByte() & 0xff;
                int p2 = input.readByte() & 0xff;
                int p3 = input.readByte() & 0xff;
                int p4 = input.readByte() & 0xff;
                theme.put(key, "" + p1 + "," + p2 + "," + p3 + "," + p4);
            }
            continue;
        }
        // padding and or margin type
        if (key.endsWith("Unit")) {
            byte p1 = input.readByte();
            byte p2 = input.readByte();
            byte p3 = input.readByte();
            byte p4 = input.readByte();
            theme.put(key, new byte[] { p1, p2, p3, p4 });
            continue;
        }
        // border
        if (key.endsWith("order")) {
            int borderType = input.readShort() & 0xffff;
            Object b = createBorder(input, borderType);
            theme.put(key, b);
            continue;
        }
        // if this is a font
        if (key.endsWith("ont")) {
            Font f;
            // is this a new font?
            if (input.readBoolean()) {
                String fontId = input.readUTF();
                f = (Font) resources.get(fontId);
                // if the font is not yet loaded
                if (f == null) {
                    theme.put(key, fontId);
                    continue;
                }
            } else {
                f = Font.createSystemFont(input.readByte(), input.readByte(), input.readByte());
                if (minorVersion > 4) {
                    boolean hasTTF = input.readBoolean();
                    if (hasTTF) {
                        String fileName = input.readUTF();
                        String fontName = input.readUTF();
                        int sizeSetting = input.readInt();
                        float fontSize = input.readFloat();
                        if (Font.isTrueTypeFileSupported()) {
                            f = createTrueTypeFont(f, fontName, fileName, fontSize, sizeSetting);
                        }
                    }
                }
            }
            theme.put(key, f);
            continue;
        }
        // the background property
        if (key.endsWith("ackground")) {
            int type = input.readByte() & 0xff;
            int pos = key.indexOf('.');
            if (pos > -1) {
                key = key.substring(0, pos);
            } else {
                key = "";
            }
            theme.put(key + Style.BACKGROUND_TYPE, new Byte((byte) type));
            switch(type) {
                // Scaled Image
                case 0xF1:
                // Tiled Both Image
                case MAGIC_INDEXED_IMAGE_LEGACY:
                    // the image name coupled with the type
                    theme.put(key + Style.BG_IMAGE, input.readUTF());
                    break;
                // Aligned Image
                case 0xf5:
                // Tiled Vertically Image
                case 0xF2:
                // Tiled Horizontally Image
                case 0xF3:
                    // the image name coupled with the type and with alignment information
                    String imageName = input.readUTF();
                    theme.put(key + Style.BG_IMAGE, imageName);
                    byte align = input.readByte();
                    theme.put(key + Style.BACKGROUND_ALIGNMENT, new Byte(align));
                    break;
                // Horizontal Linear Gradient
                case 0xF6:
                // Vertical Linear Gradient
                case 0xF7:
                    Float c = new Float(0.5f);
                    theme.put(key + Style.BACKGROUND_GRADIENT, new Object[] { new Integer(input.readInt()), new Integer(input.readInt()), c, c, new Float(1) });
                    break;
                // Radial Gradient
                case 0xF8:
                    int c1 = input.readInt();
                    int c2 = input.readInt();
                    float f1 = input.readFloat();
                    float f2 = input.readFloat();
                    float radialSize = 1;
                    if (minorVersion > 1) {
                        radialSize = input.readFloat();
                    }
                    theme.put(key + Style.BACKGROUND_GRADIENT, new Object[] { new Integer(c1), new Integer(c2), new Float(f1), new Float(f2), new Float(radialSize) });
                    break;
            }
            continue;
        }
        // if this is a background image bgImage
        if (key.endsWith("derive")) {
            theme.put(key, input.readUTF());
            continue;
        }
        // if this is a background image bgImage
        if (key.endsWith("bgImage")) {
            String imageId = input.readUTF();
            Image i = getImage(imageId);
            // if the font is not yet loaded
            if (i == null) {
                theme.put(key, imageId);
                continue;
            }
            theme.put(key, i);
            continue;
        }
        if (key.endsWith("scaledImage")) {
            if (input.readBoolean()) {
                theme.put(key, "true");
            } else {
                theme.put(key, "false");
            }
            continue;
        }
        if (key.endsWith(Style.BACKGROUND_TYPE) || key.endsWith(Style.BACKGROUND_ALIGNMENT)) {
            theme.put(key, new Byte(input.readByte()));
            continue;
        }
        if (key.endsWith(Style.BACKGROUND_GRADIENT)) {
            if (minorVersion < 2) {
                theme.put(key, new Object[] { new Integer(input.readInt()), new Integer(input.readInt()), new Float(input.readFloat()), new Float(input.readFloat()) });
            } else {
                theme.put(key, new Object[] { new Integer(input.readInt()), new Integer(input.readInt()), new Float(input.readFloat()), new Float(input.readFloat()), new Float(input.readFloat()) });
            }
            continue;
        }
        // thow an exception no idea what this is
        throw new IOException("Error while trying to read theme property: " + key);
    }
    return theme;
}
Also used : Hashtable(java.util.Hashtable) IOException(java.io.IOException) Image(com.codename1.ui.Image) EncodedImage(com.codename1.ui.EncodedImage) Font(com.codename1.ui.Font) AnimationObject(com.codename1.ui.animations.AnimationObject)

Example 48 with Theme

use of com.codename1.ui.util.xml.Theme in project CodenameOne by codenameone.

the class Resources method confirmBorder.

private Border confirmBorder(Hashtable h, String key) {
    Object val = h.get(key);
    if (val == null) {
        return null;
    }
    if (!(val instanceof Border)) {
        String[] value = (String[]) val;
        if (value == null) {
            throw new IllegalArgumentException("Couldn't find resource: " + key);
        }
        // the resource was not already loaded when we loaded the theme
        // it must be loaded now so we can resolve the temporary name
        Border imageBorder = createImageBorder(value);
        return imageBorder;
    }
    return (Border) val;
}
Also used : AnimationObject(com.codename1.ui.animations.AnimationObject) RoundBorder(com.codename1.ui.plaf.RoundBorder) RoundRectBorder(com.codename1.ui.plaf.RoundRectBorder) Border(com.codename1.ui.plaf.Border)

Example 49 with Theme

use of com.codename1.ui.util.xml.Theme in project CodenameOne by codenameone.

the class Resources method getTheme.

/**
 * Returns the theme resource from the file
 *
 * @param id name of the theme resource
 * @return cached theme instance
 */
public Hashtable getTheme(String id) {
    Hashtable h = (Hashtable) resources.get(id);
    // theme can be null in valid use cases such as the resource editor
    if (h != null && h.containsKey("uninitialized")) {
        Enumeration e = h.keys();
        while (e.hasMoreElements()) {
            String key = (String) e.nextElement();
            if (key.endsWith("font") || (key.endsWith("Image") && !key.endsWith("scaledImage"))) {
                Object value = h.get(key);
                if (value == null) {
                    throw new IllegalArgumentException("Couldn't find resource: " + key);
                }
                // it must be loaded now so we can resolve the temporary name
                if (value instanceof String) {
                    Object o;
                    // we need to trigger multi image logic  in the  resource editor
                    if (key.endsWith("Image")) {
                        o = getImage((String) value);
                    } else {
                        o = resources.get(value);
                    }
                    if (o == null) {
                        throw new IllegalArgumentException("Theme entry for " + key + " could not be found: " + value);
                    }
                    h.put(key, o);
                }
            }
            // been loaded yet when the border was created
            if (key.endsWith("order")) {
                Border b = confirmBorder(h, key);
                h.put(key, b);
            }
        }
        h.remove("uninitialized");
    }
    return h;
}
Also used : Enumeration(java.util.Enumeration) Hashtable(java.util.Hashtable) AnimationObject(com.codename1.ui.animations.AnimationObject) RoundBorder(com.codename1.ui.plaf.RoundBorder) RoundRectBorder(com.codename1.ui.plaf.RoundRectBorder) Border(com.codename1.ui.plaf.Border)

Example 50 with Theme

use of com.codename1.ui.util.xml.Theme in project CodenameOne by codenameone.

the class AddResourceDialog method addResource.

public String addResource(EditableResources res, ResourceEditorView view) {
    // "Image", "Animation", "Font", "Theme", "Data", "Localization (L10N)"
    String newName = name.getText();
    for (String r : res.getResourceNames()) {
        if (r.equalsIgnoreCase(newName)) {
            JOptionPane.showMessageDialog(this, "A resource called: " + newName + " already exists\nYou must delete the resource first.", "Add Resource", JOptionPane.ERROR_MESSAGE);
            return null;
        }
    }
    switch(type.getSelectedIndex()) {
        case // image
        IMAGE:
            ImageRGBEditor imageEditor = new ImageRGBEditor(res, name.getText(), view);
            imageEditor.selectFile();
            view.setSelectedResource(name.getText());
            break;
        case MULTI_IMAGE:
            ImageMultiEditor multiImageEditor = new ImageMultiEditor(res, name.getText(), view);
            view.setSelectedResource(name.getText());
            break;
        case TIMELINE:
            new TimelineEditor(res, name.getText(), view);
            view.setSelectedResource(name.getText());
            break;
        case // animation
        ANIMATION:
            TimelineEditor.selectFile(view, res, name.getText());
            /*ImageEditor animationEditor = new ImageEditor(res, name.getText());
                animationEditor.setAnimation(true);
                animationEditor.selectFile(view);*/
            break;
        case // font
        FONT:
            new FontEditor(res, new EditorFont(com.codename1.ui.Font.createSystemFont(com.codename1.ui.Font.FACE_SYSTEM, com.codename1.ui.Font.STYLE_PLAIN, com.codename1.ui.Font.SIZE_MEDIUM), null, "Arial-plain-12", true, RenderingHints.VALUE_TEXT_ANTIALIAS_ON, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:!@/\\*()[]{}|#$%^&<>?'\"+- "), name.getText()).createFont();
            view.setSelectedResource(name.getText());
            break;
        case // theme
        THEME:
            res.setTheme(name.getText(), new Hashtable());
            view.setSelectedResource(name.getText());
            // ResourceEditorView.expandAndSelect(tree, name.getText());
            break;
        case // data
        DATA:
            DataEditor dataEditor = new DataEditor(res, name.getText());
            dataEditor.selectDataFile(view);
            view.setSelectedResource(name.getText());
            break;
        case // localization
        LOCALIZATION:
            Hashtable h = new Hashtable();
            Hashtable local = new Hashtable();
            local.put("cancel", "Cancel");
            local.put("ok", "OK");
            local.put("menu", "Menu");
            local.put("select", "Select");
            local.put("edit", "Edit");
            h.put("en", local);
            res.setL10N(name.getText(), h);
            view.setSelectedResource(name.getText());
            // ResourceEditorView.expandAndSelect(tree, name.getText());
            break;
        case UI:
            UserInterfaceEditor uiEditor = new UserInterfaceEditor(name.getText(), res, view.getProjectGeneratorSettings(), view);
            view.setSelectedResource(name.getText());
            break;
    }
    return name.getText();
}
Also used : Hashtable(java.util.Hashtable) EditorFont(com.codename1.ui.EditorFont)

Aggregations

Hashtable (java.util.Hashtable)18 AnimationObject (com.codename1.ui.animations.AnimationObject)16 IOException (java.io.IOException)16 EncodedImage (com.codename1.ui.EncodedImage)12 Border (com.codename1.ui.plaf.Border)12 Image (com.codename1.ui.Image)10 RoundBorder (com.codename1.ui.plaf.RoundBorder)10 RoundRectBorder (com.codename1.ui.plaf.RoundRectBorder)10 BufferedImage (java.awt.image.BufferedImage)8 FileInputStream (java.io.FileInputStream)8 Resources (com.codename1.ui.util.Resources)7 File (java.io.File)7 EditorTTFFont (com.codename1.ui.EditorTTFFont)6 EditableResources (com.codename1.ui.util.EditableResources)6 InputStream (java.io.InputStream)6 EditorFont (com.codename1.ui.EditorFont)5 DataInputStream (java.io.DataInputStream)5 Container (com.codename1.ui.Container)4 Form (com.codename1.ui.Form)4 Label (com.codename1.ui.Label)4