package timeflow.app.actions;
import timeflow.model.*;
import timeflow.app.TimeflowApp;
import timeflow.app.ui.*;
import timeflow.data.db.*;
import timeflow.format.field.FieldFormatCatalog;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class AddFieldAction extends TimeflowAction {
public AddFieldAction(TimeflowApp app)
{
super(app, "Add Field...", null, "Add a field to this database");
}
@Override
public void actionPerformed(ActionEvent e) {
AddFieldPanel p=new AddFieldPanel();
Object[] options = {"Cancel", "Add Field"};
int n = JOptionPane.showOptionDialog(app,
p,
"Add New Field To Database",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
"Add Field");
if (n==1)
{
String fieldName=p.name.getText();
TFModel model=getModel();
if (fieldName.trim().length()==0)
app.showUserError("Field names can't be all spaces!");
else if (model.getDB().getField(fieldName)!=null)
app.showUserError("That name is already taken!");
else
{
model.getDB().addField(fieldName, FieldFormatCatalog.javaClass((String)p.typeChoices.getSelectedItem()));
model.noteAddField(this);
}
}
else
System.out.println("Canceled!");
}
}