// create Form
final FormBuilder f = new FormBuilder("project");
f.addElement("basic.folder", new FormFileSelectField(I18N.t("Ordner"), p == null ? null : p.getPath(), JFileChooser.OPEN_DIALOG, true, true))
.addValidator(new ValidatorUmlaut());
f.addElement("basic.name", new FormTextField(I18N.t("Name"), p == null ? "Project" : p.getTitle()));
f.addElement("basic.icon", new FormIcon(I18N.t("Icon"), p == null ? IconCache.games[0] : p.getIcon(), IconCache.games));
// build list for types
String[] key = ProjectManagement.types.keySet().toArray(new String[ProjectManagement.types.size()]);
String[] title = new String[key.length];
for (int i = 0, l = key.length; i < l; i++) {
title[i] = ProjectManagement.getType(key[i]).getTitle();
}
f.addElement("basic.type", new FormComboBox(I18N.t("Typ"), key, title).selectField(p == null ? null : p.getType().getType()));
// add crypto
if (YLevel.IS_ADVANCED) {
f.addHeader("sec", new FormHeader(I18N.t("Sicherheit"), "lock").setCollapsed(true));
// load infos
final boolean cryp = p != null && p.getCache() != null && p.getCache().containsKey("projecttype");
// add info
if (p == null) {
f.addElement("sec.info", new FormInfo("", I18N.t("Das Projekt kann erst verschlüsselt werden, wenn es erstellt wurde.")).setIcon("warn", 16));
}
// set it
f.addElement(
"sec.sec",
new FormCheckbox(I18N.t("Projekt verschlüsseln"), cryp)
.setInfoTxt(
"<html><strong>Vorgehen</strong><br>"
+ "Wenn die Verschlüssungsfunktion aktiviert wurde, muss im nächsten Dialog der Name und das Password gewählt werden.<br>"
+ "Wenn die Funktion deaktiviert wird, muss der Name und das Password eingegeben werden, wenn Sie noch nicht eingegeben wurden.<br>"
+ "<br><strong>Hinweise</strong<br>"
+ "Wenn das Projekt einmal entschlüsselt wurde, wird es erst wieder beim Beenden von YAams verschlüsselt. <br>"
+ "Solange sind die Daten für jeden frei einsehbar. Die Verschlüsselung ist nur so gut, wie das Password & der Nutername sind.",
"help").setEnabled(p != null).addValidator(new ValidatorBase() {
@Override
public void isValide(YMessagesDialog y) {
boolean ncryp = Boolean.valueOf(form.getContentAsString());
// difference?
if (!y.hasErrors() && ncryp != cryp) {
// crypto it
if (ncryp) {
// ask for data
FormBuilder formb = new FormBuilder("project.sec");
formb.addElement("basic.name", new FormTextField(I18N.t("Name"), SystemUtils.USER_NAME));
formb.addElement("basic.pw", new FormTextField(I18N.t("Password"), p.getTitle()));
YDialog.showForm(I18N.t("Name & Password"), p.getIcon() + "_lock", formb);
// setit
p.getCache().put("projecttype", f.getElement("sec.typ").getContentAsString());