diff --git a/HISTORY.md b/HISTORY.md index d6c5655..76bc0c0 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,9 @@ +## [1.2.0 (28-08-2017)](https://github.com/tauquirahmed93/palette4bootstrap/releases/tag/v1.2.0) +#### Added the following palette items +* **Bootstrap Containers** (NEW) + * Container + * Panel + ## [1.1.0 (15-08-2017)](https://github.com/tauquirahmed93/palette4bootstrap/releases/tag/v1.1.0) #### Added the following palette items * **Bootstrap Typography** diff --git a/README.md b/README.md index 9a0646b..b3bf8ac 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,9 @@ This is a module for the [NetBeans IDE](http://netbeans.org/) which adds new pal * Ionicons * Carousel * Google Maps +* **Bootstrap Containers** + * Container + * Panel -And many more to come soon. diff --git a/manifest.mf b/manifest.mf index b5af0b8..606879e 100644 --- a/manifest.mf +++ b/manifest.mf @@ -3,5 +3,5 @@ AutoUpdate-Show-In-Client: true OpenIDE-Module: org.tauquir.palette4bootstrap OpenIDE-Module-Layer: org/tauquir/palette4bootstrap/layer.xml OpenIDE-Module-Localizing-Bundle: org/tauquir/palette4bootstrap/items/Bundle.properties -OpenIDE-Module-Specification-Version: 1.1.0 +OpenIDE-Module-Specification-Version: 1.2.0 diff --git a/src/org/tauquir/palette4bootstrap/items/Bundle.properties b/src/org/tauquir/palette4bootstrap/items/Bundle.properties index fd2a21e..3361f46 100644 --- a/src/org/tauquir/palette4bootstrap/items/Bundle.properties +++ b/src/org/tauquir/palette4bootstrap/items/Bundle.properties @@ -95,6 +95,28 @@ Create other typography related elements like <small>,
\ <strong>, <em>, <mark>, <span>, etc
\ +# Strings for Container +CONTAINERS.CONTAINER.NAME=Container +CONTAINERS.CONTAINER.HINT=\ +\ +Bootstrap requires a containing element to wrap site contents and house the grid system.
\ +You may choose one of two containers to use in your projects
\ +
    \ +
  1. Use .container for a responsive fixed width container.
  2. \ +
  3. Use .container-fluid for a full width container, spanning the entire width of your viewport.
  4. \ +

\ +Note that, due to padding and more, neither container is nestable.
\ + + +# Strings for Container +CONTAINERS.PANEL.NAME=Panel +CONTAINERS.PANEL.HINT=\ +\ +This is the Bootstrap Panel Component
\ +Use it to display content inside a customizable
\ +box which may contain a heading, body and a footer\ + + # Strings for Image MEDIA.IMAGE.NAME=Image MEDIA.IMAGE.HINT=\ @@ -422,3 +444,9 @@ MapCustomizer.jLabel18.text=Type MapCustomizer.jLabel17.text=Zoom MapCustomizer.jLabel16.text=Coordinates MapCustomizer.jLabel19.text=Coordinates +ContainerCustomizer.jLabel1.text=Container Type +ContainerCustomizer.jTextArea1.toolTipText= +PanelCustomizer.jLabel2.text=Panel Type +PanelCustomizer.showHeaderCheckBox.text=Show Heading +PanelCustomizer.showBodyCheckBox.text=Show Body +PanelCustomizer.showFooterCheckBox.text=Show Footer diff --git a/src/org/tauquir/palette4bootstrap/items/Container.java b/src/org/tauquir/palette4bootstrap/items/Container.java new file mode 100644 index 0000000..9e01d9f --- /dev/null +++ b/src/org/tauquir/palette4bootstrap/items/Container.java @@ -0,0 +1,43 @@ +/* + * palette4bootstrap - A netbeans palette plugin for the Bootstrap + * Copyright (c) 2017-2018 Tauquir Ahmed (tauquirahmed93@gmail.com) + * Licensed under the MIT License. + */ +package org.tauquir.palette4bootstrap.items; + +import javax.swing.text.BadLocationException; +import javax.swing.text.JTextComponent; +import org.openide.text.ActiveEditorDrop; +import org.tauquir.palette4bootstrap.bsPaletteUtilities; + +public class Container implements ActiveEditorDrop { + private boolean isFluid = false; + + public String generateBody() { + StringBuilder sb = new StringBuilder(); + sb.append("
\n
"); + return sb.toString(); + } + + @Override + public boolean handleTransfer(JTextComponent jtc) { + ContainerCustomizer c = new ContainerCustomizer(this); + boolean accept = c.showDialog(); + if (accept) { + String body = generateBody(); + try { + bsPaletteUtilities.insert(body, jtc); + } catch (BadLocationException ble) { + accept = false; + } + } + return accept; + } + + public void setIsFluid(boolean isFluid) { + this.isFluid = isFluid; + } +} diff --git a/src/org/tauquir/palette4bootstrap/items/ContainerCustomizer.form b/src/org/tauquir/palette4bootstrap/items/ContainerCustomizer.form new file mode 100644 index 0000000..60fcc40 --- /dev/null +++ b/src/org/tauquir/palette4bootstrap/items/ContainerCustomizer.form @@ -0,0 +1,102 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/org/tauquir/palette4bootstrap/items/ContainerCustomizer.java b/src/org/tauquir/palette4bootstrap/items/ContainerCustomizer.java new file mode 100644 index 0000000..f97cb1a --- /dev/null +++ b/src/org/tauquir/palette4bootstrap/items/ContainerCustomizer.java @@ -0,0 +1,127 @@ +/* + * palette4bootstrap - A netbeans palette plugin for the Bootstrap + * Copyright (c) 2017-2018 Tauquir Ahmed (tauquirahmed93@gmail.com) + * Licensed under the MIT License. + */ +package org.tauquir.palette4bootstrap.items; + +import java.awt.Dialog; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import org.openide.DialogDescriptor; +import org.openide.DialogDisplayer; +import org.openide.util.NbBundle; + +public class ContainerCustomizer extends javax.swing.JPanel { + private Dialog dialog = null; + private DialogDescriptor descriptor = null; + private boolean dialogOK = false; + private final Container container; + /** + * Creates new form ContainerCustomizer + */ + public ContainerCustomizer(Container container) { + this.container = container; + initComponents(); + } + + public boolean showDialog() { + dialogOK = false; + descriptor = new DialogDescriptor(this, NbBundle.getMessage(getClass(), "Customizer.InsertPrefix") + + " " + NbBundle.getMessage(getClass(), "GRID.GRIDCLEARFIX.NAME"), true, + DialogDescriptor.OK_CANCEL_OPTION, DialogDescriptor.OK_OPTION, + new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if (descriptor.getValue().equals(DialogDescriptor.OK_OPTION)) { + dialogOK = true; + } + dialog.dispose(); + } + }); + dialog = DialogDisplayer.getDefault().createDialog(descriptor); + dialog.setResizable(false); + dialog.setVisible(true); + return dialogOK; + } + + /** + * 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. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + jComboBox1 = new javax.swing.JComboBox<>(); + jLabel1 = new javax.swing.JLabel(); + jLabel2 = new javax.swing.JLabel(); + jScrollPane1 = new javax.swing.JScrollPane(); + jTextArea1 = new javax.swing.JTextArea(); + + jComboBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { ".container", ".container-fluid" })); + jComboBox1.addItemListener(new java.awt.event.ItemListener() { + public void itemStateChanged(java.awt.event.ItemEvent evt) { + jComboBox1ItemStateChanged(evt); + } + }); + + org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(ContainerCustomizer.class, "ContainerCustomizer.jLabel1.text")); // NOI18N + + org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(ContainerCustomizer.class, "Customizer.GeneratedCode")); // NOI18N + + jTextArea1.setColumns(20); + jTextArea1.setRows(5); + jTextArea1.setText("
\n
"); // NOI18N + jTextArea1.setToolTipText(org.openide.util.NbBundle.getMessage(ContainerCustomizer.class, "ContainerCustomizer.jTextArea1.toolTipText")); // NOI18N + jScrollPane1.setViewportView(jTextArea1); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 322, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel1) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jLabel2)) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel1) + .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(jLabel2) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + ); + }//
//GEN-END:initComponents + + private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jComboBox1ItemStateChanged + if (evt.getStateChange() == java.awt.event.ItemEvent.SELECTED) { // Ignore ItemEvent.DESELECTED + if (jComboBox1.getSelectedItem().toString().equals(".container")) { + container.setIsFluid(false); + } else container.setIsFluid(true); + jTextArea1.setText(container.generateBody()); + } + }//GEN-LAST:event_jComboBox1ItemStateChanged + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JComboBox jComboBox1; + private javax.swing.JLabel jLabel1; + private javax.swing.JLabel jLabel2; + private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JTextArea jTextArea1; + // End of variables declaration//GEN-END:variables +} diff --git a/src/org/tauquir/palette4bootstrap/items/Panel.java b/src/org/tauquir/palette4bootstrap/items/Panel.java new file mode 100644 index 0000000..8fbfb71 --- /dev/null +++ b/src/org/tauquir/palette4bootstrap/items/Panel.java @@ -0,0 +1,81 @@ +/* + * palette4bootstrap - A netbeans palette plugin for the Bootstrap + * Copyright (c) 2017-2018 Tauquir Ahmed (tauquirahmed93@gmail.com) + * Licensed under the MIT License. + */ +package org.tauquir.palette4bootstrap.items; + +import javax.swing.text.BadLocationException; +import javax.swing.text.JTextComponent; +import org.openide.text.ActiveEditorDrop; +import org.tauquir.palette4bootstrap.bsPaletteUtilities; + +public class Panel implements ActiveEditorDrop { + + private String panelStyle = "panel-default"; + private Boolean showHeader = true; + private Boolean showBody = true; + private Boolean showFooter = false; + + public String generateBody() { + StringBuilder sb = new StringBuilder(); + sb.append("
\n"); + if (showHeader) { + sb.append("
\n") + .append("

Title

\n") + .append("
\n"); + } + if (showBody) { + sb.append("
\n") + .append(" \n") + .append(" \n") + .append(" Body\n") + .append("
\n"); + } + if (showFooter) { + sb.append("
\n") + .append(" Footer\n") + .append("
\n"); + } + sb.append("
\n"); + return sb.toString(); + } + + @Override + public boolean handleTransfer(JTextComponent jtc) { + PanelCustomizer c = new PanelCustomizer(this); + boolean accept = c.showDialog(); + if (accept) { + String body = generateBody(); + try { + bsPaletteUtilities.insert(body, jtc); + } catch (BadLocationException ble) { + accept = false; + } + } + return accept; + } + + public void setPanelStyle(String panelStyle) { + this.panelStyle = panelStyle; + } + + public void setShowHeader(Boolean showHeader) { + this.showHeader = showHeader; + } + + public void setShowBody(Boolean showBody) { + this.showBody = showBody; + } + + public void setShowFooter(Boolean showFooter) { + this.showFooter = showFooter; + } + + public void resetParameters() { + panelStyle = "panel-default"; + showHeader = true; + showBody = true; + showFooter = false; + } +} diff --git a/src/org/tauquir/palette4bootstrap/items/PanelCustomizer.form b/src/org/tauquir/palette4bootstrap/items/PanelCustomizer.form new file mode 100644 index 0000000..fb284db --- /dev/null +++ b/src/org/tauquir/palette4bootstrap/items/PanelCustomizer.form @@ -0,0 +1,233 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/org/tauquir/palette4bootstrap/items/PanelCustomizer.java b/src/org/tauquir/palette4bootstrap/items/PanelCustomizer.java new file mode 100644 index 0000000..e38d46d --- /dev/null +++ b/src/org/tauquir/palette4bootstrap/items/PanelCustomizer.java @@ -0,0 +1,289 @@ +/* + * palette4bootstrap - A netbeans palette plugin for the Bootstrap + * Copyright (c) 2017-2018 Tauquir Ahmed (tauquirahmed93@gmail.com) + * Licensed under the MIT License. + */ +package org.tauquir.palette4bootstrap.items; + +import java.awt.BorderLayout; +import java.awt.Dialog; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.image.BufferedImage; +import javafx.application.Platform; +import javafx.embed.swing.JFXPanel; +import javafx.scene.Scene; +import javafx.scene.web.WebEngine; +import javafx.scene.web.WebView; +import javax.swing.JDialog; +import org.openide.util.NbBundle; +import static org.openide.util.NbBundle.getMessage; + +public class PanelCustomizer extends javax.swing.JPanel { + + private boolean dialogOK = false; + private JDialog jd; + private WebEngine webEngine; + private final JFXPanel fxPanel; + private final Panel panel; + + /** + * Creates new form PanelCustomizer + */ + public PanelCustomizer(Panel panel) { + this.panel = panel; + initComponents(); + fxPanel = new JFXPanel(); // JFXPanel is required to display JavaFX + Platform.setImplicitExit(false); // Prevents jfx thread from shutting down when dialog is closed + createScene(); + jPreview.add(fxPanel, BorderLayout.CENTER); + fxPanel.setVisible(true); + } + + public boolean showDialog() { + dialogOK = false; + jd = new JDialog(); + jd.setSize(this.getPreferredSize()); + jd.setIconImage(new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB_PRE)); + jd.setTitle(NbBundle.getMessage(getClass(), "Customizer.InsertPrefix") + + " " + getMessage(getClass(), "CONTAINERS.PANEL.NAME")); + jd.setModalityType(Dialog.ModalityType.APPLICATION_MODAL); + jd.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE); + jd.add(this); + jd.setLocationRelativeTo(null); + jd.setVisible(true); + jd.addWindowListener(new WindowAdapter() { + @Override + public void windowDeactivated(WindowEvent e) { + /* Reset every parameter of Panel object so that old values + does not appear on re-opening the dialog */ + panel.resetParameters(); + } + } + ); + return dialogOK; + } + + private void createScene() { + // webView is used to display live preview of the components. It is a + // JavaFX component so it must be run on the JavaFX thread + Platform.runLater(new Runnable() { + @Override + public void run() { + // Set up the embedded browser: + WebView browser = new WebView(); + webEngine = browser.getEngine(); + webEngine.load(getClass().getResource("resources/preview.html").toExternalForm()); + fxPanel.setScene(new Scene(browser)); + } + }); + } + + private void updatePreviews() { + // Update the Generated Code textArea + codeGenerated.setText(panel.generateBody()); + // Update the live preview area in javafx thread + Platform.runLater(new Runnable() { + @Override + public void run() { + String processedString = panel.generateBody().trim().replaceAll("\n", ""); + String script = "document.getElementById('previewContainer').innerHTML='" + processedString + "'"; + webEngine.executeScript(script); + } + }); + } + + /** + * 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. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + jPreview = new javax.swing.JPanel(); + jLabel1 = new javax.swing.JLabel(); + jPanel2 = new javax.swing.JPanel(); + dialogOKBtn = new javax.swing.JButton(); + dialogCancelBtn = new javax.swing.JButton(); + jPanel1 = new javax.swing.JPanel(); + showHeaderCheckBox = new javax.swing.JCheckBox(); + showBodyCheckBox = new javax.swing.JCheckBox(); + showFooterCheckBox = new javax.swing.JCheckBox(); + jPanel3 = new javax.swing.JPanel(); + jLabel2 = new javax.swing.JLabel(); + panelTypeComboBox = new javax.swing.JComboBox<>(); + jScrollPane1 = new javax.swing.JScrollPane(); + codeGenerated = new javax.swing.JTextArea(); + + jPreview.setBorder(javax.swing.BorderFactory.createLineBorder(javax.swing.UIManager.getDefaults().getColor("windowBorder"))); + jPreview.setFocusable(false); + jPreview.setLayout(new java.awt.BorderLayout()); + + org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(PanelCustomizer.class, "Customizer.GeneratedCode")); // NOI18N + + jPanel2.setLayout(new java.awt.BorderLayout()); + + org.openide.awt.Mnemonics.setLocalizedText(dialogOKBtn, org.openide.util.NbBundle.getMessage(PanelCustomizer.class, "Customizer.OK")); // NOI18N + dialogOKBtn.setMaximumSize(new java.awt.Dimension(69, 23)); + dialogOKBtn.setMinimumSize(new java.awt.Dimension(69, 23)); + dialogOKBtn.setPreferredSize(new java.awt.Dimension(69, 23)); + dialogOKBtn.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + dialogButtonActionPerformed(evt); + } + }); + jPanel2.add(dialogOKBtn, java.awt.BorderLayout.WEST); + + org.openide.awt.Mnemonics.setLocalizedText(dialogCancelBtn, org.openide.util.NbBundle.getMessage(PanelCustomizer.class, "Customizer.Cancel")); // NOI18N + dialogCancelBtn.setMaximumSize(new java.awt.Dimension(69, 23)); + dialogCancelBtn.setMinimumSize(new java.awt.Dimension(69, 23)); + dialogCancelBtn.setPreferredSize(new java.awt.Dimension(69, 23)); + dialogCancelBtn.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + dialogButtonActionPerformed(evt); + } + }); + jPanel2.add(dialogCancelBtn, java.awt.BorderLayout.EAST); + + jPanel1.setLayout(new java.awt.GridLayout(1, 0)); + + showHeaderCheckBox.setSelected(true); + org.openide.awt.Mnemonics.setLocalizedText(showHeaderCheckBox, org.openide.util.NbBundle.getMessage(PanelCustomizer.class, "PanelCustomizer.showHeaderCheckBox.text")); // NOI18N + showHeaderCheckBox.addItemListener(new java.awt.event.ItemListener() { + public void itemStateChanged(java.awt.event.ItemEvent evt) { + showHeaderCheckBoxItemStateChanged(evt); + } + }); + jPanel1.add(showHeaderCheckBox); + + showBodyCheckBox.setSelected(true); + org.openide.awt.Mnemonics.setLocalizedText(showBodyCheckBox, org.openide.util.NbBundle.getMessage(PanelCustomizer.class, "PanelCustomizer.showBodyCheckBox.text")); // NOI18N + showBodyCheckBox.addItemListener(new java.awt.event.ItemListener() { + public void itemStateChanged(java.awt.event.ItemEvent evt) { + showBodyCheckBoxItemStateChanged(evt); + } + }); + jPanel1.add(showBodyCheckBox); + + org.openide.awt.Mnemonics.setLocalizedText(showFooterCheckBox, org.openide.util.NbBundle.getMessage(PanelCustomizer.class, "PanelCustomizer.showFooterCheckBox.text")); // NOI18N + showFooterCheckBox.addItemListener(new java.awt.event.ItemListener() { + public void itemStateChanged(java.awt.event.ItemEvent evt) { + showFooterCheckBoxItemStateChanged(evt); + } + }); + jPanel1.add(showFooterCheckBox); + + jPanel3.setLayout(new java.awt.GridLayout(1, 0)); + + org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(PanelCustomizer.class, "PanelCustomizer.jLabel2.text")); // NOI18N + jPanel3.add(jLabel2); + + panelTypeComboBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Default", "Primary", "Success", "Info", "Warning", "Danger" })); + panelTypeComboBox.addItemListener(new java.awt.event.ItemListener() { + public void itemStateChanged(java.awt.event.ItemEvent evt) { + panelTypeComboBoxItemStateChanged(evt); + } + }); + jPanel3.add(panelTypeComboBox); + + codeGenerated.setEditable(false); + codeGenerated.setColumns(20); + codeGenerated.setLineWrap(true); + codeGenerated.setRows(5); + codeGenerated.setText("
\n
\n

Title

\n
\n
\n \n \n Body\n
\n
"); // NOI18N + codeGenerated.setWrapStyleWord(true); + codeGenerated.setFocusable(false); + jScrollPane1.setViewportView(codeGenerated); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jPreview, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel1) + .addGap(0, 0, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING)) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(jPreview, javax.swing.GroupLayout.DEFAULT_SIZE, 234, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jLabel1) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 157, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + ); + }//
//GEN-END:initComponents + + private void panelTypeComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_panelTypeComboBoxItemStateChanged + if (evt.getStateChange()==java.awt.event.ItemEvent.SELECTED) { + panel.setPanelStyle("panel-" + panelTypeComboBox.getSelectedItem().toString().toLowerCase()); + updatePreviews(); + } + }//GEN-LAST:event_panelTypeComboBoxItemStateChanged + + private void showHeaderCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_showHeaderCheckBoxItemStateChanged + panel.setShowHeader(showHeaderCheckBox.isSelected()); + updatePreviews(); + }//GEN-LAST:event_showHeaderCheckBoxItemStateChanged + + private void showBodyCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_showBodyCheckBoxItemStateChanged + panel.setShowBody(showBodyCheckBox.isSelected()); + updatePreviews(); + }//GEN-LAST:event_showBodyCheckBoxItemStateChanged + + private void showFooterCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_showFooterCheckBoxItemStateChanged + panel.setShowFooter(showFooterCheckBox.isSelected()); + updatePreviews(); + }//GEN-LAST:event_showFooterCheckBoxItemStateChanged + + private void dialogButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dialogButtonActionPerformed + javax.swing.JButton button = (javax.swing.JButton) evt.getSource(); + if (button.equals(dialogOKBtn)) { + dialogOK = true; + jd.dispose(); + + } else if (button.equals(dialogCancelBtn)) { + dialogOK = false; + jd.dispose(); + } + }//GEN-LAST:event_dialogButtonActionPerformed + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JTextArea codeGenerated; + private javax.swing.JButton dialogCancelBtn; + private javax.swing.JButton dialogOKBtn; + private javax.swing.JLabel jLabel1; + private javax.swing.JLabel jLabel2; + private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel2; + private javax.swing.JPanel jPanel3; + private javax.swing.JPanel jPreview; + private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JComboBox panelTypeComboBox; + private javax.swing.JCheckBox showBodyCheckBox; + private javax.swing.JCheckBox showFooterCheckBox; + private javax.swing.JCheckBox showHeaderCheckBox; + // End of variables declaration//GEN-END:variables +} diff --git a/src/org/tauquir/palette4bootstrap/items/resources/container.xml b/src/org/tauquir/palette4bootstrap/items/resources/container.xml new file mode 100644 index 0000000..4f12d0f --- /dev/null +++ b/src/org/tauquir/palette4bootstrap/items/resources/container.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/org/tauquir/palette4bootstrap/items/resources/panel.xml b/src/org/tauquir/palette4bootstrap/items/resources/panel.xml new file mode 100644 index 0000000..aad2062 --- /dev/null +++ b/src/org/tauquir/palette4bootstrap/items/resources/panel.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/org/tauquir/palette4bootstrap/layer.xml b/src/org/tauquir/palette4bootstrap/layer.xml index fd87a40..27353b3 100644 --- a/src/org/tauquir/palette4bootstrap/layer.xml +++ b/src/org/tauquir/palette4bootstrap/layer.xml @@ -75,5 +75,14 @@ + + + + + + + + + diff --git a/updates.xml b/updates.xml index 2649318..cfa518a 100644 --- a/updates.xml +++ b/updates.xml @@ -1,6 +1,6 @@ - + - +