From ebd590594795173846f8f6e68c866984d8d04f4a Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Fri, 27 Aug 2021 16:10:10 +0200 Subject: [PATCH] Theme Editor: preview improvements: - added JToolBar, JProgressBar with string painted, JDesktopPane and JInternalFrame - placed text components side-by-side to save vertical space - changed button texts and removed tooltips - fixed painting of table cell focus border - added missing add.svg --- .../flatlaf/themeeditor/FlatThemePreview.java | 224 +++++++++++++----- .../flatlaf/themeeditor/FlatThemePreview.jfd | 166 ++++++++----- .../formdev/flatlaf/themeeditor/icons/add.svg | 7 + 3 files changed, 281 insertions(+), 116 deletions(-) create mode 100644 flatlaf-theme-editor/src/main/resources/com/formdev/flatlaf/themeeditor/icons/add.svg diff --git a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.java b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.java index 246eda5c..be8a567c 100644 --- a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.java +++ b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.java @@ -20,6 +20,7 @@ package com.formdev.flatlaf.themeeditor; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.HierarchyEvent; +import java.beans.PropertyVetoException; import java.util.Map; import java.util.WeakHashMap; import java.util.function.Function; @@ -68,6 +69,20 @@ class FlatThemePreview list1.setSelectedIndex( 1 ); tree1.setSelectionRow( 1 ); table1.setRowSelectionInterval( 1, 1 ); + table1.uiDefaultsGetter = this::getUIDefaultProperty; + + EventQueue.invokeLater( () -> { + int width = desktopPane1.getWidth(); + int height = desktopPane1.getHeight() / 2; + internalFrame1.setBounds( 0, 0, width, height ); + internalFrame2.setBounds( 0, height, width, height ); + + try { + internalFrame1.setSelected( true ); + } catch( PropertyVetoException ex ) { + // ignore + } + } ); // timer used for delayed preview updates timer = new Timer( 300, e -> update() ); @@ -259,6 +274,22 @@ class FlatThemePreview private void changeProgress() { int value = slider3.getValue(); progressBar1.setValue( value ); + progressBar2.setValue( value ); + } + + private Object toolbarCons; + + @Override + protected void addImpl( Component comp, Object constraints, int index ) { + // if floating toolbar window is closed, then place toolbar at original location + if( comp == toolBar1 ) { + if( toolbarCons == null ) + toolbarCons = constraints; + else if( comp.getParent() == null && toolbarCons != null ) + constraints = toolbarCons; + } + + super.addImpl( comp, constraints, index ); } private void initComponents() { @@ -294,17 +325,13 @@ class FlatThemePreview spinner1 = new JSpinner(); textFieldLabel = new JLabel(); textField1 = new FlatTextField(); - formattedTextFieldLabel = new JLabel(); formattedTextField1 = new FlatFormattedTextField(); - passwordFieldLabel = new JLabel(); passwordField1 = new FlatPasswordField(); textAreaLabel = new JLabel(); scrollPane1 = new JScrollPane(); textArea1 = new JTextArea(); - editorPaneLabel = new JLabel(); scrollPane5 = new JScrollPane(); editorPane1 = new JEditorPane(); - textPaneLabel = new JLabel(); scrollPane9 = new JScrollPane(); textPane1 = new JTextPane(); menuBarLabel = new JLabel(); @@ -334,8 +361,15 @@ class FlatThemePreview slider3 = new JSlider(); progressBarLabel = new JLabel(); progressBar1 = new FlatProgressBar(); + progressBar2 = new FlatProgressBar(); toolTipLabel = new JLabel(); toolTip1 = new JToolTip(); + toolBarLabel = new JLabel(); + toolBar1 = new JToolBar(); + button4 = new JButton(); + button6 = new JButton(); + button7 = new JToggleButton(); + button8 = new JToggleButton(); tabbedPaneLabel = new JLabel(); tabbedPane1 = new FlatThemePreview.PreviewTabbedPane(); listTreeLabel = new JLabel(); @@ -345,7 +379,11 @@ class FlatThemePreview tree1 = new JTree(); tableLabel = new JLabel(); scrollPane4 = new JScrollPane(); - table1 = new JTable(); + table1 = new FlatThemePreview.PreviewTable(); + internalFrameLabel = new JLabel(); + desktopPane1 = new JDesktopPane(); + internalFrame1 = new JInternalFrame(); + internalFrame2 = new JInternalFrame(); //======== this ======== setLayout(new MigLayout( @@ -380,6 +418,7 @@ class FlatThemePreview "[]" + "[]" + "[]" + + "[100,fill]" + "[grow]")); //---- previewSeparator ---- @@ -417,12 +456,11 @@ class FlatThemePreview add(buttonLabel, "cell 0 3"); //---- button1 ---- - button1.setText("Apply"); - button1.setToolTipText("This button is enabled."); + button1.setText("OK"); add(button1, "cell 1 3,alignx left,growx 0"); //---- testDefaultButton1 ---- - testDefaultButton1.setText("OK"); + testDefaultButton1.setText("Default"); add(testDefaultButton1, "cell 1 3"); //---- helpButton ---- @@ -436,7 +474,6 @@ class FlatThemePreview //---- toggleButton1 ---- toggleButton1.setText("Unselected"); - toggleButton1.setToolTipText("LOOOOOOOOOOOOOONG TEXT"); add(toggleButton1, "cell 1 4,alignx left,growx 0"); //---- toggleButton3 ---- @@ -495,7 +532,7 @@ class FlatThemePreview })); comboBox1.setMaximumRowCount(6); comboBox1.setPlaceholderText("placeholder text"); - add(comboBox1, "cell 1 7"); + add(comboBox1, "cell 1 7,width 50"); //---- comboBox3 ---- comboBox3.setModel(new DefaultComboBoxModel<>(new String[] { @@ -513,7 +550,7 @@ class FlatThemePreview "kkk" })); comboBox3.setMaximumRowCount(6); - add(comboBox3, "cell 1 7"); + add(comboBox3, "cell 1 7,width 50"); //---- spinnerLabel ---- spinnerLabel.setText("JSpinner:"); @@ -521,35 +558,27 @@ class FlatThemePreview add(spinner1, "cell 1 8"); //---- textFieldLabel ---- - textFieldLabel.setText("JTextField:"); - add(textFieldLabel, "cell 0 9"); + textFieldLabel.setText("JTextField:
JFormattedTextF.:
JPasswordField:"); + add(textFieldLabel, "cell 0 9 1 2"); //---- textField1 ---- textField1.setText("Some Text"); textField1.setPlaceholderText("placeholder text"); add(textField1, "cell 1 9"); - //---- formattedTextFieldLabel ---- - formattedTextFieldLabel.setText("JFormattedTextF.:"); - add(formattedTextFieldLabel, "cell 0 10"); - //---- formattedTextField1 ---- formattedTextField1.setText("Some Text"); formattedTextField1.setPlaceholderText("placeholder text"); - add(formattedTextField1, "cell 1 10"); - - //---- passwordFieldLabel ---- - passwordFieldLabel.setText("JPasswordField:"); - add(passwordFieldLabel, "cell 0 11"); + add(formattedTextField1, "cell 1 10,width 50"); //---- passwordField1 ---- passwordField1.setText("Some Text"); passwordField1.setPlaceholderText("placeholder text"); - add(passwordField1, "cell 1 11"); + add(passwordField1, "cell 1 10,width 50"); //---- textAreaLabel ---- - textAreaLabel.setText("JTextArea:"); - add(textAreaLabel, "cell 0 12"); + textAreaLabel.setText("JTextArea:

JEditorPane:
JTextPane:"); + add(textAreaLabel, "cell 0 11 1 2"); //======== scrollPane1 ======== { @@ -561,11 +590,7 @@ class FlatThemePreview textArea1.setRows(2); scrollPane1.setViewportView(textArea1); } - add(scrollPane1, "cell 1 12"); - - //---- editorPaneLabel ---- - editorPaneLabel.setText("JEditorPane"); - add(editorPaneLabel, "cell 0 13"); + add(scrollPane1, "cell 1 11"); //======== scrollPane5 ======== { @@ -576,11 +601,7 @@ class FlatThemePreview editorPane1.setText("Some Text"); scrollPane5.setViewportView(editorPane1); } - add(scrollPane5, "cell 1 13"); - - //---- textPaneLabel ---- - textPaneLabel.setText("JTextPane:"); - add(textPaneLabel, "cell 0 14"); + add(scrollPane5, "cell 1 12,width 50"); //======== scrollPane9 ======== { @@ -591,11 +612,11 @@ class FlatThemePreview textPane1.setText("Some Text"); scrollPane9.setViewportView(textPane1); } - add(scrollPane9, "cell 1 14"); + add(scrollPane9, "cell 1 12,width 50"); //---- menuBarLabel ---- menuBarLabel.setText("JMenuBar:"); - add(menuBarLabel, "cell 0 15"); + add(menuBarLabel, "cell 0 13"); //======== menuBar1 ======== { @@ -673,33 +694,33 @@ class FlatThemePreview } menuBar1.add(menu3); } - add(menuBar1, "cell 1 15"); + add(menuBar1, "cell 1 13"); //---- scrollBarLabel ---- scrollBarLabel.setText("JScrollBar:"); - add(scrollBarLabel, "cell 0 16"); + add(scrollBarLabel, "cell 0 14"); //---- scrollBar1 ---- scrollBar1.setOrientation(Adjustable.HORIZONTAL); - add(scrollBar1, "cell 1 16"); + add(scrollBar1, "cell 1 14"); //---- scrollBar5 ---- scrollBar5.setOrientation(Adjustable.HORIZONTAL); scrollBar5.setShowButtons(true); - add(scrollBar5, "cell 1 17"); + add(scrollBar5, "cell 1 15"); //---- separatorLabel ---- separatorLabel.setText("JSeparator:"); - add(separatorLabel, "cell 0 18"); - add(separator1, "cell 1 18"); + add(separatorLabel, "cell 0 16"); + add(separator1, "cell 1 16"); //---- sliderLabel ---- sliderLabel.setText("JSlider:"); - add(sliderLabel, "cell 0 19"); + add(sliderLabel, "cell 0 17"); //---- slider1 ---- slider1.setValue(30); - add(slider1, "cell 1 19"); + add(slider1, "cell 1 17"); //---- slider3 ---- slider3.setMinorTickSpacing(10); @@ -708,23 +729,55 @@ class FlatThemePreview slider3.setPaintLabels(true); slider3.setValue(30); slider3.addChangeListener(e -> changeProgress()); - add(slider3, "cell 1 20"); + add(slider3, "cell 1 18"); //---- progressBarLabel ---- progressBarLabel.setText("JProgressBar:"); - add(progressBarLabel, "cell 0 21"); + add(progressBarLabel, "cell 0 19"); //---- progressBar1 ---- progressBar1.setValue(60); - add(progressBar1, "cell 1 21"); + add(progressBar1, "cell 1 19"); + + //---- progressBar2 ---- + progressBar2.setValue(50); + progressBar2.setStringPainted(true); + add(progressBar2, "cell 1 20"); //---- toolTipLabel ---- toolTipLabel.setText("JToolTip:"); - add(toolTipLabel, "cell 0 22"); + add(toolTipLabel, "cell 0 21"); //---- toolTip1 ---- toolTip1.setTipText("Some text in tool tip."); - add(toolTip1, "cell 1 22,alignx left,growx 0"); + add(toolTip1, "cell 1 21,alignx left,growx 0"); + + //---- toolBarLabel ---- + toolBarLabel.setText("JToolBar:"); + add(toolBarLabel, "cell 0 22"); + + //======== toolBar1 ======== + { + + //---- button4 ---- + button4.setIcon(UIManager.getIcon("Tree.closedIcon")); + toolBar1.add(button4); + + //---- button6 ---- + button6.setIcon(UIManager.getIcon("Tree.openIcon")); + toolBar1.add(button6); + toolBar1.addSeparator(); + + //---- button7 ---- + button7.setIcon(UIManager.getIcon("Tree.leafIcon")); + toolBar1.add(button7); + + //---- button8 ---- + button8.setIcon(UIManager.getIcon("Tree.leafIcon")); + button8.setSelected(true); + toolBar1.add(button8); + } + add(toolBar1, "cell 1 22"); //---- tabbedPaneLabel ---- tabbedPaneLabel.setText("JTabbedPane:"); @@ -791,6 +844,43 @@ class FlatThemePreview } add(scrollPane4, "cell 1 25,height 70"); + //---- internalFrameLabel ---- + internalFrameLabel.setText("JDesktopPane:
JInternalFrame:"); + add(internalFrameLabel, "cell 0 26,aligny top,growy 0"); + + //======== desktopPane1 ======== + { + + //======== internalFrame1 ======== + { + internalFrame1.setVisible(true); + internalFrame1.setTitle("Active"); + internalFrame1.setClosable(true); + internalFrame1.setMaximizable(true); + internalFrame1.setIconifiable(true); + internalFrame1.setResizable(true); + Container internalFrame1ContentPane = internalFrame1.getContentPane(); + internalFrame1ContentPane.setLayout(new BorderLayout()); + } + desktopPane1.add(internalFrame1, JLayeredPane.DEFAULT_LAYER); + internalFrame1.setBounds(new Rectangle(new Point(5, 5), internalFrame1.getPreferredSize())); + + //======== internalFrame2 ======== + { + internalFrame2.setVisible(true); + internalFrame2.setClosable(true); + internalFrame2.setIconifiable(true); + internalFrame2.setMaximizable(true); + internalFrame2.setResizable(true); + internalFrame2.setTitle("Inactive"); + Container internalFrame2ContentPane = internalFrame2.getContentPane(); + internalFrame2ContentPane.setLayout(new BorderLayout()); + } + desktopPane1.add(internalFrame2, JLayeredPane.DEFAULT_LAYER); + internalFrame2.setBounds(new Rectangle(new Point(5, 50), internalFrame2.getPreferredSize())); + } + add(desktopPane1, "cell 1 26"); + //---- buttonGroup1 ---- ButtonGroup buttonGroup1 = new ButtonGroup(); buttonGroup1.add(radioButton1); @@ -835,17 +925,13 @@ class FlatThemePreview private JSpinner spinner1; private JLabel textFieldLabel; private FlatTextField textField1; - private JLabel formattedTextFieldLabel; private FlatFormattedTextField formattedTextField1; - private JLabel passwordFieldLabel; private FlatPasswordField passwordField1; private JLabel textAreaLabel; private JScrollPane scrollPane1; private JTextArea textArea1; - private JLabel editorPaneLabel; private JScrollPane scrollPane5; private JEditorPane editorPane1; - private JLabel textPaneLabel; private JScrollPane scrollPane9; private JTextPane textPane1; private JLabel menuBarLabel; @@ -875,8 +961,15 @@ class FlatThemePreview private JSlider slider3; private JLabel progressBarLabel; private FlatProgressBar progressBar1; + private FlatProgressBar progressBar2; private JLabel toolTipLabel; private JToolTip toolTip1; + private JLabel toolBarLabel; + private JToolBar toolBar1; + private JButton button4; + private JButton button6; + private JToggleButton button7; + private JToggleButton button8; private JLabel tabbedPaneLabel; private FlatThemePreview.PreviewTabbedPane tabbedPane1; private JLabel listTreeLabel; @@ -886,7 +979,11 @@ class FlatThemePreview private JTree tree1; private JLabel tableLabel; private JScrollPane scrollPane4; - private JTable table1; + private FlatThemePreview.PreviewTable table1; + private JLabel internalFrameLabel; + private JDesktopPane desktopPane1; + private JInternalFrame internalFrame1; + private JInternalFrame internalFrame2; // JFormDesigner - End of variables declaration //GEN-END:variables //---- class PreviewDefaultButton ----------------------------------------- @@ -936,10 +1033,27 @@ class FlatThemePreview { @Override public void actionPerformed( ActionEvent e ) { + // needed for "more tabs" popup creation FlatLaf.runWithUIDefaultsGetter( uiDefaultsGetter, () -> { super.actionPerformed( e ); } ); } } } + + //---- class PreviewTable ------------------------------------------------- + + private static class PreviewTable + extends JTable + { + Function uiDefaultsGetter; + + @Override + public void paint( Graphics g ) { + // needed for DefaultTableCellRenderer + FlatLaf.runWithUIDefaultsGetter( uiDefaultsGetter, () -> { + super.paint( g ); + } ); + } + } } diff --git a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.jfd b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.jfd index cc48bba2..a624cf1b 100644 --- a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.jfd +++ b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.jfd @@ -6,7 +6,7 @@ new FormModel { add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) { "$layoutConstraints": "insets dialog,hidemode 3" "$columnConstraints": "[fill][130,fill]" - "$rowConstraints": "[]0[]unrel[][][][][][][][][][][][][][][][][][][][][][][][][grow]" + "$rowConstraints": "[]0[]unrel[][][][][][][][][][][][][][][][][][][][][][][][][100,fill][grow]" } ) { name: "this" add( new FormComponent( "javax.swing.JSeparator" ) { @@ -63,14 +63,13 @@ new FormModel { } ) add( new FormComponent( "javax.swing.JButton" ) { name: "button1" - "text": "Apply" - "toolTipText": "This button is enabled." + "text": "OK" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { "value": "cell 1 3,alignx left,growx 0" } ) add( new FormComponent( "com.formdev.flatlaf.themeeditor.FlatThemePreview$PreviewDefaultButton" ) { name: "testDefaultButton1" - "text": "OK" + "text": "Default" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { "value": "cell 1 3" } ) @@ -94,7 +93,6 @@ new FormModel { add( new FormComponent( "javax.swing.JToggleButton" ) { name: "toggleButton1" "text": "Unselected" - "toolTipText": "LOOOOOOOOOOOOOONG TEXT" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { "value": "cell 1 4,alignx left,growx 0" } ) @@ -190,7 +188,7 @@ new FormModel { "JavaCodeGenerator.typeParameters": "String" } }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 7" + "value": "cell 1 7,width 50" } ) add( new FormComponent( "javax.swing.JComboBox" ) { name: "comboBox3" @@ -211,7 +209,7 @@ new FormModel { } "maximumRowCount": 6 }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 7" + "value": "cell 1 7,width 50" } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "spinnerLabel" @@ -226,9 +224,9 @@ new FormModel { } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "textFieldLabel" - "text": "JTextField:" + "text": "JTextField:
JFormattedTextF.:
JPasswordField:" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 9" + "value": "cell 0 9 1 2" } ) add( new FormComponent( "com.formdev.flatlaf.extras.components.FlatTextField" ) { name: "textField1" @@ -240,37 +238,25 @@ new FormModel { }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { "value": "cell 1 9" } ) - add( new FormComponent( "javax.swing.JLabel" ) { - name: "formattedTextFieldLabel" - "text": "JFormattedTextF.:" - }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 10" - } ) add( new FormComponent( "com.formdev.flatlaf.extras.components.FlatFormattedTextField" ) { name: "formattedTextField1" "text": "Some Text" "placeholderText": "placeholder text" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 10" - } ) - add( new FormComponent( "javax.swing.JLabel" ) { - name: "passwordFieldLabel" - "text": "JPasswordField:" - }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 11" + "value": "cell 1 10,width 50" } ) add( new FormComponent( "com.formdev.flatlaf.extras.components.FlatPasswordField" ) { name: "passwordField1" "text": "Some Text" "placeholderText": "placeholder text" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 11" + "value": "cell 1 10,width 50" } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "textAreaLabel" - "text": "JTextArea:" + "text": "JTextArea:

JEditorPane:
JTextPane:" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 12" + "value": "cell 0 11 1 2" } ) add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) { name: "scrollPane1" @@ -282,13 +268,7 @@ new FormModel { "rows": 2 } ) }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 12" - } ) - add( new FormComponent( "javax.swing.JLabel" ) { - name: "editorPaneLabel" - "text": "JEditorPane" - }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 13" + "value": "cell 1 11" } ) add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) { name: "scrollPane5" @@ -299,13 +279,7 @@ new FormModel { "text": "Some Text" } ) }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 13" - } ) - add( new FormComponent( "javax.swing.JLabel" ) { - name: "textPaneLabel" - "text": "JTextPane:" - }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 14" + "value": "cell 1 12,width 50" } ) add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) { name: "scrollPane9" @@ -316,13 +290,13 @@ new FormModel { "text": "Some Text" } ) }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 14" + "value": "cell 1 12,width 50" } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "menuBarLabel" "text": "JMenuBar:" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 15" + "value": "cell 0 13" } ) add( new FormContainer( "javax.swing.JMenuBar", new FormLayoutManager( class javax.swing.JMenuBar ) ) { name: "menuBar1" @@ -400,43 +374,43 @@ new FormModel { } ) } ) }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 15" + "value": "cell 1 13" } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "scrollBarLabel" "text": "JScrollBar:" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 16" + "value": "cell 0 14" } ) add( new FormComponent( "javax.swing.JScrollBar" ) { name: "scrollBar1" "orientation": 0 }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 16" + "value": "cell 1 14" } ) add( new FormComponent( "com.formdev.flatlaf.extras.components.FlatScrollBar" ) { name: "scrollBar5" "orientation": 0 "showButtons": true }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 17" + "value": "cell 1 15" } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "separatorLabel" "text": "JSeparator:" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 18" + "value": "cell 0 16" } ) add( new FormComponent( "javax.swing.JSeparator" ) { name: "separator1" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 18" + "value": "cell 1 16" } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "sliderLabel" "text": "JSlider:" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 19" + "value": "cell 0 17" } ) add( new FormComponent( "javax.swing.JSlider" ) { name: "slider1" @@ -445,7 +419,7 @@ new FormModel { "JavaCodeGenerator.variableLocal": false } }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 19" + "value": "cell 1 17" } ) add( new FormComponent( "javax.swing.JSlider" ) { name: "slider3" @@ -459,34 +433,69 @@ new FormModel { } addEvent( new FormEvent( "javax.swing.event.ChangeListener", "stateChanged", "changeProgress", false ) ) }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 20" + "value": "cell 1 18" } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "progressBarLabel" "text": "JProgressBar:" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 21" + "value": "cell 0 19" } ) add( new FormComponent( "com.formdev.flatlaf.extras.components.FlatProgressBar" ) { name: "progressBar1" "value": 60 - auxiliary() { - "JavaCodeGenerator.variableLocal": false - } }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 21" + "value": "cell 1 19" + } ) + add( new FormComponent( "com.formdev.flatlaf.extras.components.FlatProgressBar" ) { + name: "progressBar2" + "value": 50 + "stringPainted": true + }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { + "value": "cell 1 20" } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "toolTipLabel" "text": "JToolTip:" }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 0 22" + "value": "cell 0 21" } ) add( new FormComponent( "javax.swing.JToolTip" ) { name: "toolTip1" "tipText": "Some text in tool tip." }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { - "value": "cell 1 22,alignx left,growx 0" + "value": "cell 1 21,alignx left,growx 0" + } ) + add( new FormComponent( "javax.swing.JLabel" ) { + name: "toolBarLabel" + "text": "JToolBar:" + }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { + "value": "cell 0 22" + } ) + add( new FormContainer( "javax.swing.JToolBar", new FormLayoutManager( class javax.swing.JToolBar ) ) { + name: "toolBar1" + add( new FormComponent( "javax.swing.JButton" ) { + name: "button4" + "icon": new com.jformdesigner.model.SwingIcon( 2, "Tree.closedIcon" ) + } ) + add( new FormComponent( "javax.swing.JButton" ) { + name: "button6" + "icon": new com.jformdesigner.model.SwingIcon( 2, "Tree.openIcon" ) + } ) + add( new FormComponent( "javax.swing.JToolBar$Separator" ) { + name: "separator4" + } ) + add( new FormComponent( "javax.swing.JToggleButton" ) { + name: "button7" + "icon": &SwingIcon0 new com.jformdesigner.model.SwingIcon( 2, "Tree.leafIcon" ) + } ) + add( new FormComponent( "javax.swing.JToggleButton" ) { + name: "button8" + "icon": #SwingIcon0 + "selected": true + } ) + }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { + "value": "cell 1 22" } ) add( new FormComponent( "javax.swing.JLabel" ) { name: "tabbedPaneLabel" @@ -544,7 +553,7 @@ new FormModel { } ) add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) { name: "scrollPane4" - add( new FormComponent( "javax.swing.JTable" ) { + add( new FormComponent( "com.formdev.flatlaf.themeeditor.FlatThemePreview$PreviewTable" ) { name: "table1" "model": new com.jformdesigner.model.SwingTableModel( new java.util.Vector { add( new java.util.Vector { @@ -572,19 +581,54 @@ new FormModel { }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { "value": "cell 1 25,height 70" } ) + add( new FormComponent( "javax.swing.JLabel" ) { + name: "internalFrameLabel" + "text": "JDesktopPane:
JInternalFrame:" + }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { + "value": "cell 0 26,aligny top,growy 0" + } ) + add( new FormContainer( "javax.swing.JDesktopPane", new FormLayoutManager( class javax.swing.JDesktopPane ) ) { + name: "desktopPane1" + add( new FormContainer( "javax.swing.JInternalFrame", new FormLayoutManager( class java.awt.BorderLayout ) ) { + name: "internalFrame1" + "visible": true + "title": "Active" + "closable": true + "maximizable": true + "iconifiable": true + "resizable": true + }, new FormLayoutConstraints( null ) { + "x": 5 + "y": 5 + } ) + add( new FormContainer( "javax.swing.JInternalFrame", new FormLayoutManager( class java.awt.BorderLayout ) ) { + name: "internalFrame2" + "visible": true + "closable": true + "iconifiable": true + "maximizable": true + "resizable": true + "title": "Inactive" + }, new FormLayoutConstraints( null ) { + "x": 5 + "y": 50 + } ) + }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { + "value": "cell 1 26" + } ) }, new FormLayoutConstraints( null ) { "location": new java.awt.Point( 0, 0 ) - "size": new java.awt.Dimension( 400, 915 ) + "size": new java.awt.Dimension( 400, 1070 ) } ) add( new FormNonVisual( "javax.swing.ButtonGroup" ) { name: "buttonGroup1" }, new FormLayoutConstraints( null ) { - "location": new java.awt.Point( 0, 955 ) + "location": new java.awt.Point( 0, 1095 ) } ) add( new FormNonVisual( "javax.swing.ButtonGroup" ) { name: "buttonGroup2" }, new FormLayoutConstraints( null ) { - "location": new java.awt.Point( 0, 1007 ) + "location": new java.awt.Point( 0, 1145 ) } ) } } diff --git a/flatlaf-theme-editor/src/main/resources/com/formdev/flatlaf/themeeditor/icons/add.svg b/flatlaf-theme-editor/src/main/resources/com/formdev/flatlaf/themeeditor/icons/add.svg new file mode 100644 index 00000000..af6fd932 --- /dev/null +++ b/flatlaf-theme-editor/src/main/resources/com/formdev/flatlaf/themeeditor/icons/add.svg @@ -0,0 +1,7 @@ + + + + + + +