package tk.amberide.ide.gui.dialogs.res; import tk.amberide.engine.data.map.Layer; import tk.amberide.engine.data.map.Layer; import tk.amberide.engine.data.map.LevelMap; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; /** * * @author Tudor */ public class NewLayerDialog extends javax.swing.JDialog { private LevelMap map; /** * Creates new form NewLayerDialog */ public NewLayerDialog(java.awt.Frame parent, LevelMap map) { super(parent); initComponents(); this.map = map; nameField.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent e) { checkCreateableStatus(); } }); } private void checkCreateableStatus() { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { boolean flag = true; for (Layer layer : map.getLayers()) { if (layer.getName().equals(nameField.getText())) { flag = false; break; } } createButton.setEnabled(flag); } }); } /** * 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() { cancelButton = new javax.swing.JButton(); createButton = new javax.swing.JButton(); mapGroup = new javax.swing.JPanel(); nameLabel = new javax.swing.JLabel(); nameField = new tk.amberide.ide.swing.textbox.HintTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setModal(true); setResizable(false); java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("amber/Bundle"); // NOI18N cancelButton.setText("Cancel"); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); createButton.setText("Create"); createButton.setEnabled(false); createButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { createButtonActionPerformed(evt); } }); mapGroup.setBorder(javax.swing.BorderFactory.createTitledBorder("Layer")); nameLabel.setText("Name:"); nameField.setHint("Type in layer name..."); javax.swing.GroupLayout mapGroupLayout = new javax.swing.GroupLayout(mapGroup); mapGroup.setLayout(mapGroupLayout); mapGroupLayout.setHorizontalGroup( mapGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(mapGroupLayout.createSequentialGroup() .addContainerGap() .addComponent(nameLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(nameField, javax.swing.GroupLayout.DEFAULT_SIZE, 112, Short.MAX_VALUE) .addContainerGap()) ); mapGroupLayout.setVerticalGroup( mapGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(mapGroupLayout.createSequentialGroup() .addGap(3, 3, 3) .addGroup(mapGroupLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(nameLabel) .addComponent(nameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(6, 6, 6)) ); 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) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addComponent(createButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(cancelButton)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(mapGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(mapGroup, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(cancelButton) .addComponent(createButton)) .addGap(6, 6, 6)) ); pack(); setLocationRelativeTo(null); }// </editor-fold>//GEN-END:initComponents private void createButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createButtonActionPerformed Layer l = new Layer(nameField.getText(), map); System.out.println("NewLayerDialog created " + l); map.addLayer(l); dispose(); }//GEN-LAST:event_createButtonActionPerformed private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed dispose(); }//GEN-LAST:event_jButton1ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton createButton; private javax.swing.JButton cancelButton; private javax.swing.JPanel mapGroup; private tk.amberide.ide.swing.textbox.HintTextField nameField; private javax.swing.JLabel nameLabel; // End of variables declaration//GEN-END:variables }