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
}