use of com.codename1.rad.models.Property 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", "rem", "vw", "vh", "vmin", "vmax" }));
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()));
}
use of com.codename1.rad.models.Property in project CodenameOne by codenameone.
the class RADActionBoundUIIDSample method start.
public void start() {
if (current != null) {
current.show();
return;
}
Form hi = new Form("Toggled Actions Sample", new BorderLayout());
// Create a tag fo the online status property.
Tag TAG_ONLINE = new Tag("online");
// Create an action that will indicte the online/offline status
ActionNode status = UI.action(// on state of TAG_ONLINE property.
UI.label(person -> {
if (person.isFalsey(TAG_ONLINE)) {
return "Offline";
} else {
return "Online";
}
}), // Depending on state of TAG_ONLINE property
UI.uiid(person -> {
if (person.isFalsey(TAG_ONLINE)) {
return "LoggedOutStatusButton";
} else {
return "LoggedInStatusButton";
}
}), // Icon for the action
UI.icon(FontImage.MATERIAL_PERSON), // define it to always return true so action is always visible.
UI.condition(person -> {
return true;
}));
// A User entity we use for the models.
class User extends Entity {
}
entityTypeBuilder(User.class).Boolean(TAG_ONLINE).string(Thing.name).factory(cls -> {
return new User();
}).build();
// Create an entity list that will hold several users.
EntityList el = new EntityList();
for (int i = 0; i < 200; i++) {
User u = new User();
u.set(Thing.name, "User " + i);
u.set(TAG_ONLINE, i % 2 == 0);
el.add(u);
}
// The ListNode is a wrapper that will be passed to our View so that
// they can access our action.
ListNode node = new ListNode(// for each row.
UI.actions(ProfileListView.ACCOUNT_LIST_ROW_ACTIONS, status));
// Use a ProfileListView to display all of the users
// https://shannah.github.io/CodeRAD/javadoc/com/codename1/rad/ui/entityviews/ProfileListView.html
ProfileListView plv = new ProfileListView(el, node, 8);
plv.setScrollableY(true);
// In order to respond to events raised by the action, our view needs to be wrapped
// in a controller. Normally our form would have a FormViewController so we could
// just use FormController, but this sample is compressed to be inside
// a single method here so we'll create a dedicated ViewController for the list
ViewController ctrl = new ViewController(null);
ctrl.setView(plv);
ctrl.addActionListener(status, evt -> {
// The action was pressed by the user
// Update the model's online status
User u = (User) evt.getEntity();
u.set(TAG_ONLINE, u.isFalsey(TAG_ONLINE));
// This will trigger a property change in the model which will update the view.
});
hi.add(CENTER, plv);
hi.show();
}
use of com.codename1.rad.models.Property in project CodenameOne by codenameone.
the class RADStatusViewSample method start.
public void start() {
if (current != null) {
current.show();
return;
}
Form hi = new Form("Hi World", BoxLayout.y());
Tag TAG_ONLINE = new Tag("online");
class User extends Entity {
}
entityTypeBuilder(User.class).Boolean(TAG_ONLINE).string(Thing.name).factory(cls -> {
return new User();
}).build();
/**
* A view that displays the status (online/offline) of an entity using
* the TAG_ONLINE tag.
*/
class StatusView extends AbstractEntityView {
// ViewNode. Not used;
ViewNode node;
// Flag to indicate the current state online/offline of the view
private boolean online;
// Label used
private Label label = new Label();
/**
* Creates a new StatusView for user model.
*/
StatusView(User user) {
super(user);
this.node = new ViewNode(new Attribute[] {});
setLayout(new BorderLayout());
$(this).setMargin(0).setPadding(0);
this.add(CENTER, label);
update();
}
@Override
public void update() {
// Check to see if the model is online.
boolean modelOnline = !getEntity().isFalsey(TAG_ONLINE);
if (modelOnline != online) {
// Model state has changed since last update
online = modelOnline;
if (online) {
label.setText("Online");
label.setUIID("OnlineLabel");
FontImage.setMaterialIcon(label, FontImage.MATERIAL_CONNECTED_TV);
} else {
label.setText("Offline");
label.setUIID("OfflineLabel");
FontImage.setMaterialIcon(label, FontImage.MATERIAL_OFFLINE_BOLT);
}
Form f = getComponentForm();
if (f != null) {
// Changing the text in this case may change the layout size
// of the status view here, so it is best to just issue a revalidate
// for the whole form. If the status change didn't change
// the layout size, then we could have just skipped this step.
f.revalidateWithAnimationSafety();
}
}
}
@Override
public void commit() {
// Don't need to implement commit() because this view doesn't
// "update" the model - it only shows model stats.
}
@Override
public Node getViewNode() {
return node;
}
}
// Create a new user
User user = new User();
// Create a status view for the user
StatusView statusView = new StatusView(user);
// Add a UI switch to toggle user state between online and offline
Switch onlineSwitch = new Switch("Online");
onlineSwitch.addChangeListener(e -> {
// Set the user TAG_ONLINE status. This will trigger a property
// change in the model and update the view.
user.set(TAG_ONLINE, onlineSwitch.isOn());
});
hi.add(onlineSwitch);
hi.add(statusView);
hi.show();
}
use of com.codename1.rad.models.Property in project CodenameOne by codenameone.
the class LayoutTests method boxLayoutTests.
public boolean boxLayoutTests() throws Exception {
System.out.println("BoxLayout Tests");
BoxLayout l = new BoxLayout(BoxLayout.Y_AXIS);
Container cnt = new Container(l);
cnt.setRTL(false);
int w = 500;
int h = 500;
cnt.setWidth(w);
cnt.setHeight(h);
Component child1 = createEmptyComponent(100, 100);
Component child2 = createEmptyComponent(200, 50);
cnt.add(child1).add(child2);
$(child1, child2, cnt).setPadding(0).setMargin(0);
cnt.layoutContainer();
assertEqual(0, child1.getY(), "child1 should be aligned top");
assertEqual(100, child2.getY(), "child 2 should be aligned top just after child1 ");
assertEqual(0, child1.getX(), "Child1 not aligned left");
assertEqual(w, child1.getWidth(), "Child1 not taking full width");
assertEqual(0, child2.getX(), "Child2 not aligned left");
assertEqual(w, child2.getWidth(), "Child2 not taking full width");
l.setAlign(BOTTOM);
cnt.setShouldCalcPreferredSize(true);
cnt.layoutContainer();
assertEqual(500, child2.getY() + child2.getHeight(), "Child2 should be aligned bottom");
assertEqual(450, child1.getY() + child1.getHeight(), "child 1 should be aligned bottom just above child2");
assertEqual(0, child1.getX(), "Child1 not aligned left");
assertEqual(w, child1.getWidth(), "Child1 not taking full width");
assertEqual(0, child2.getX(), "Child2 not aligned left");
assertEqual(w, child2.getWidth(), "Child2 not taking full width");
l.setAlign(CENTER);
cnt.setShouldCalcPreferredSize(true);
cnt.layoutContainer();
assertEqual(325, child2.getY() + child2.getHeight(), "Child2 should be aligned bottom");
assertEqual(175, child1.getY(), "child 1 should be aligned bottom just above child2");
assertEqual(0, child1.getX(), "Child1 not aligned left");
assertEqual(w, child1.getWidth(), "Child1 not taking full width");
assertEqual(0, child2.getX(), "Child2 not aligned left");
assertEqual(w, child2.getWidth(), "Child2 not taking full width");
Component child3 = createEmptyComponent(500, 500);
$(child3).setPadding(0).setMargin(0);
cnt.add(child3);
// This is a component to tip it over the edge.
// NOTICE: When the children fill the height of the container, the align property
// ceases to have meaning. We do NOT try to align the components once the container is filled.
cnt.setShouldCalcPreferredSize(true);
cnt.layoutContainer();
assertEqual(0, child1.getY(), "Child1 should be aligned top");
assertEqual(100, child2.getY(), "Child 2 should be aligned just after");
assertEqual(150, child3.getY(), "Child 3 should be just after");
assertEqual(0, child1.getX(), "Child1 not aligned left");
assertEqual(w, child1.getWidth(), "Child1 not taking full width");
assertEqual(0, child2.getX(), "Child2 not aligned left");
assertEqual(w, child2.getWidth(), "Child2 not taking full width");
l.setAlign(BOTTOM);
cnt.setShouldCalcPreferredSize(true);
cnt.layoutContainer();
assertEqual(0, child1.getY(), "Child1 should be aligned top");
assertEqual(100, child2.getY(), "Child 2 should be aligned just after");
assertEqual(150, child3.getY(), "Child 3 should be just after");
assertEqual(0, child1.getX(), "Child1 not aligned left");
assertEqual(w, child1.getWidth(), "Child1 not taking full width");
assertEqual(0, child2.getX(), "Child2 not aligned left");
assertEqual(w, child2.getWidth(), "Child2 not taking full width");
// Now test the x axis
l = BoxLayout.x();
cnt.setLayout(l);
cnt.removeComponent(child3);
cnt.setShouldCalcPreferredSize(true);
cnt.layoutContainer();
assertEqual(0, child1.getX(), "Child1 not aligned left");
assertEqual(100, child1.getWidth(), "Child2 not taking preferred width");
assertEqual(h, child1.getHeight(), "Child1 not taking full height");
assertEqual(0, child1.getY(), "Child1 not aligning top");
assertEqual(100, child2.getX(), "Child2 should be aligned next to child1");
assertEqual(200, child2.getWidth(), "Child 2 not taking preferred width");
assertEqual(h, child2.getHeight(), "Child 2 not taking full height of container");
assertEqual(0, child2.getY(), "Child2 not aligning top");
l.setAlign(CENTER);
cnt.setShouldCalcPreferredSize(true);
cnt.layoutContainer();
assertEqual(100, child1.getX(), "Child1 not aligned left");
assertEqual(100, child1.getWidth(), "Child2 not taking preferred width");
assertEqual(h, child1.getHeight(), "Child1 not taking full height");
assertEqual(0, child1.getY(), "Child1 not aligning top");
assertEqual(200, child2.getX(), "Child2 should be aligned next to child1");
assertEqual(200, child2.getWidth(), "Child 2 not taking preferred width");
assertEqual(h, child2.getHeight(), "Child 2 not taking full height of container");
assertEqual(0, child2.getY(), "Child2 not aligning top");
l.setAlign(RIGHT);
cnt.setShouldCalcPreferredSize(true);
cnt.layoutContainer();
assertEqual(200, child1.getX(), "Child1 not aligned left");
assertEqual(100, child1.getWidth(), "Child2 not taking preferred width");
assertEqual(h, child1.getHeight(), "Child1 not taking full height");
assertEqual(0, child1.getY(), "Child1 not aligning top");
assertEqual(300, child2.getX(), "Child2 should be aligned next to child1");
assertEqual(200, child2.getWidth(), "Child 2 not taking preferred width");
assertEqual(h, child2.getHeight(), "Child 2 not taking full height of container");
assertEqual(0, child2.getY(), "Child2 not aligning top");
return true;
}
use of com.codename1.rad.models.Property in project CodenameOne by codenameone.
the class Resources method loadTheme.
Hashtable loadTheme(String id, boolean newerVersion) throws IOException {
Hashtable theme = new Hashtable();
String densityStr = Display.getInstance().getDensityStr();
String platformName = Display.getInstance().getPlatformName();
if ("HTML5".equals(platformName)) {
platformName = Display.getInstance().getProperty("HTML5.platformName", "mac");
}
String deviceType = Display.getInstance().isDesktop() ? "desktop" : Display.getInstance().isTablet() ? "tablet" : "phone";
String platformPrefix = "platform-" + platformName + "-";
String densityPrefix = "density-" + densityStr + "-";
String devicePrefix = "device-" + deviceType + "-";
String platformDensityPrefix = platformPrefix + densityPrefix;
String devicePlatformPrefix = devicePrefix + platformPrefix;
String devicePlatformDensityPrefix = devicePlatformPrefix + densityPrefix;
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();
List<String> fontKeys = new ArrayList<String>();
Map<String, Float> fontScaleRules = null;
class MediaRule {
int matchCount;
int bestMatchScore;
String rawKey;
String translatedKey;
}
Map<String, MediaRule> mediaRules = new HashMap<String, MediaRule>();
int defaultFontSizeSetPriority = 0;
for (int iter = 0; iter < size; iter++) {
String key = input.readUTF();
if (key.startsWith("@")) {
theme.put(key, input.readUTF());
if (enableMediaQueries) {
if (key.endsWith("-font-scale")) {
if (fontScaleRules == null) {
fontScaleRules = new LinkedHashMap<String, Float>();
}
fontScaleRules.put(key, Float.parseFloat((String) theme.get(key)));
}
}
if (key.equals("@defaultFontSizeInt") && defaultFontSizeSetPriority < 1) {
int themeMedianFontSize = Integer.parseInt((String) theme.get(key));
if (themeMedianFontSize > 0) {
double adjustedFontSize = themeMedianFontSize * CN.convertToPixels(1f) * 25.4 / (CN.isDesktop() ? 96f : 160f);
Font.setDefaultFont(Font.createTrueTypeFont(Font.NATIVE_MAIN_REGULAR, (float) adjustedFontSize / CN.convertToPixels(1f)));
defaultFontSizeSetPriority = 1;
}
}
if (CN.isTablet() && key.equals("@defaultTabletFontSizeInt") && defaultFontSizeSetPriority < 2) {
int themeMedianFontSize = Integer.parseInt((String) theme.get(key));
if (themeMedianFontSize > 0) {
double adjustedFontSize = themeMedianFontSize * CN.convertToPixels(1f) * 25.4 / (CN.isDesktop() ? 96f : 160f);
Font.setDefaultFont(Font.createTrueTypeFont(Font.NATIVE_MAIN_REGULAR, (float) adjustedFontSize / CN.convertToPixels(1f)));
defaultFontSizeSetPriority = 2;
}
}
if (CN.isDesktop() && key.equals("@defaultDesktopFontSizeInt") && defaultFontSizeSetPriority < 3) {
int themeMedianFontSize = Integer.parseInt((String) theme.get(key));
if (themeMedianFontSize > 0) {
double adjustedFontSize = themeMedianFontSize * CN.convertToPixels(1f) * 25.4 / (CN.isDesktop() ? 96f : 160f);
Font.setDefaultFont(Font.createTrueTypeFont(Font.NATIVE_MAIN_REGULAR, (float) adjustedFontSize / CN.convertToPixels(1f)));
defaultFontSizeSetPriority = 3;
}
}
continue;
}
if (enableMediaQueries) {
String subkey = key;
boolean mediaMatch = true;
int matchCount = 0;
int bestMatchScore = 0;
if (subkey.startsWith("device-")) {
if (!subkey.startsWith(devicePrefix)) {
mediaMatch = false;
} else {
subkey = subkey.substring(devicePrefix.length());
matchCount++;
bestMatchScore = Math.max(50, bestMatchScore);
}
}
if (mediaMatch && subkey.startsWith("platform-")) {
if (!subkey.startsWith(platformPrefix)) {
mediaMatch = false;
} else {
subkey = subkey.substring(platformPrefix.length());
matchCount++;
bestMatchScore = Math.max(100, bestMatchScore);
}
}
if (mediaMatch && subkey.startsWith("density-")) {
if (!subkey.startsWith(densityPrefix)) {
mediaMatch = false;
} else {
subkey = subkey.substring(densityPrefix.length());
matchCount++;
bestMatchScore = Math.max(10, bestMatchScore);
}
}
if (mediaMatch) {
if (mediaRules == null) {
mediaRules = new HashMap<String, MediaRule>();
}
MediaRule rule = mediaRules.get(subkey);
boolean replace = false;
if (rule == null) {
replace = true;
}
if (!replace && rule.matchCount <= matchCount) {
replace = true;
}
if (!replace && rule.bestMatchScore <= bestMatchScore) {
replace = true;
}
if (replace) {
if (rule == null) {
rule = new MediaRule();
mediaRules.put(subkey, rule);
}
rule.bestMatchScore = bestMatchScore;
rule.matchCount = matchCount;
rule.rawKey = key;
rule.translatedKey = subkey;
}
}
}
// 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("fgAlpha")) {
theme.put(key, (input.readInt() & 0xff));
continue;
}
if (key.endsWith("opacity")) {
theme.put(key, "" + (input.readInt() & 0xff));
continue;
}
if (key.endsWith("elevation")) {
theme.put(key, (input.readInt() & 0xff));
continue;
}
if (key.endsWith("iconGap")) {
theme.put(key, input.readFloat());
continue;
}
if (key.endsWith("iconGapUnit")) {
theme.put(key, input.readByte());
continue;
}
if (key.endsWith("surface")) {
theme.put(key, (input.readBoolean()));
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()) {
fontKeys.add(key);
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);
}
if (enableMediaQueries) {
if (mediaRules != null && !mediaRules.isEmpty()) {
for (MediaRule rule : mediaRules.values()) {
theme.put(rule.translatedKey, theme.get(rule.rawKey));
}
}
if (fontScaleRules != null && !fontKeys.isEmpty()) {
float scale = 1f;
for (Map.Entry<String, Float> rule : fontScaleRules.entrySet()) {
String key = rule.getKey();
String skey = key.substring(1);
if (skey.startsWith("device-")) {
if (skey.startsWith(devicePrefix)) {
skey = skey.substring(devicePrefix.length());
} else {
continue;
}
}
if (skey.startsWith("platform-")) {
if (skey.startsWith(platformPrefix)) {
skey = skey.substring(platformPrefix.length());
} else {
continue;
}
}
if (skey.startsWith("density-")) {
if (skey.startsWith(densityPrefix)) {
skey = skey.substring(densityPrefix.length());
} else {
continue;
}
}
if ("font-scale".equals(skey)) {
scale *= rule.getValue();
}
}
if (Math.abs(scale - 1f) > 0.01) {
for (String fontKey : fontKeys) {
Font f = (Font) theme.get(fontKey);
if (f != null && f.isTTFNativeFont()) {
try {
f = f.derive(f.getPixelSize() * scale, f.getStyle());
theme.put(fontKey, f);
} catch (Exception ex) {
Log.p("Failed to derive font " + f + " while loading font key " + fontKey + " from resource file. " + ex.getMessage());
Log.e(ex);
}
}
}
}
}
}
return theme;
}
Aggregations