/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.pepsoft.worldpainter.themes.impl.simple; import java.awt.Window; import java.util.List; import javax.swing.DefaultComboBoxModel; import javax.swing.SpinnerNumberModel; import org.pepsoft.worldpainter.LayerListCellRenderer; import org.pepsoft.worldpainter.WorldPainterDialog; import org.pepsoft.worldpainter.layers.Layer; import org.pepsoft.worldpainter.themes.Filter; import org.pepsoft.worldpainter.themes.HeightFilter; /** * * @author pepijn */ public class AddLayerDialog extends WorldPainterDialog { /** * Creates new form AddLayerDialog */ public AddLayerDialog(Window parent, List<Layer> layers, int maxHeight) { super(parent); this.maxHeight = maxHeight; initComponents(); DefaultComboBoxModel<Layer> comboBoxModel = new DefaultComboBoxModel<>(layers.toArray(new Layer[layers.size()])); comboBoxLayer.setModel(comboBoxModel); comboBoxLayer.setRenderer(new LayerListCellRenderer()); ((SpinnerNumberModel) spinnerFrom.getModel()).setMaximum(maxHeight - 1); spinnerFrom.setValue(maxHeight / 2); ((SpinnerNumberModel) spinnerTo.getModel()).setMaximum(maxHeight - 1); spinnerTo.setValue(maxHeight - 1); setControlStates(); getRootPane().setDefaultButton(buttonOK); pack(); setLocationRelativeTo(parent); } public Layer getSelectedLayer() { return (Layer) comboBoxLayer.getSelectedItem(); } public Filter getSelectedFilter() { return new HeightFilter(maxHeight, (Integer) spinnerFrom.getValue(), (Integer) spinnerTo.getValue(), checkBoxFeather.isSelected()); } private void setControlStates() { buttonOK.setEnabled(comboBoxLayer.getSelectedItem() != null); } /** * 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") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jButton2 = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); comboBoxLayer = new javax.swing.JComboBox(); buttonCancel = new javax.swing.JButton(); buttonOK = new javax.swing.JButton(); jLabel2 = new javax.swing.JLabel(); spinnerFrom = new javax.swing.JSpinner(); jLabel3 = new javax.swing.JLabel(); spinnerTo = new javax.swing.JSpinner(); jLabel4 = new javax.swing.JLabel(); checkBoxFeather = new javax.swing.JCheckBox(); jButton2.setText("jButton2"); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Add Layer Mapping"); jLabel1.setText("Configure a layer to add to the mapping:"); comboBoxLayer.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); comboBoxLayer.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { comboBoxLayerActionPerformed(evt); } }); buttonCancel.setText("Cancel"); buttonCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonCancelActionPerformed(evt); } }); buttonOK.setText("OK"); buttonOK.setEnabled(false); buttonOK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonOKActionPerformed(evt); } }); jLabel2.setLabelFor(spinnerFrom); jLabel2.setText("From:"); spinnerFrom.setModel(new javax.swing.SpinnerNumberModel(128, 0, 255, 1)); jLabel3.setLabelFor(spinnerTo); jLabel3.setText("To:"); spinnerTo.setModel(new javax.swing.SpinnerNumberModel(255, 0, 255, 1)); jLabel4.setLabelFor(comboBoxLayer); jLabel4.setText("Layer:"); checkBoxFeather.setText("Feather:"); checkBoxFeather.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1) .addGroup(layout.createSequentialGroup() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(spinnerFrom, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(spinnerTo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkBoxFeather) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(comboBoxLayer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonOK) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(buttonCancel) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(comboBoxLayer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel2) .addComponent(spinnerFrom, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel3) .addComponent(spinnerTo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4) .addComponent(checkBoxFeather)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonCancel) .addComponent(buttonOK)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void buttonOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonOKActionPerformed ok(); }//GEN-LAST:event_buttonOKActionPerformed private void buttonCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCancelActionPerformed cancel(); }//GEN-LAST:event_buttonCancelActionPerformed private void comboBoxLayerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboBoxLayerActionPerformed setControlStates(); }//GEN-LAST:event_comboBoxLayerActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton buttonCancel; private javax.swing.JButton buttonOK; private javax.swing.JCheckBox checkBoxFeather; private javax.swing.JComboBox comboBoxLayer; private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JSpinner spinnerFrom; private javax.swing.JSpinner spinnerTo; // End of variables declaration//GEN-END:variables private final int maxHeight; }