package org.expeditee.settings.identity.secrets; import java.util.List; import java.util.function.Predicate; import org.expeditee.gui.Frame; import org.expeditee.items.Text; import org.expeditee.setting.ArraySetting; import org.expeditee.setting.TextSetting; public class KeyList { public static final TextSetting PersonalKey = new TextSetting("The AES key used to secure your profile frame - do not share with anyone!", "PersonalKey") { @Override public Text generateText() { Text t = new Text("PersonalKey"); return t; } }; public static final TextSetting PrivateKey = new TextSetting("The RSA key used to decrypt things encrypted with your RSA public key - do not share with anyone!", "PrivateKey") { @Override public Text generateText() { Text t = new Text("PrivateKey"); return t; } }; public static final ArraySetting UserLabels = new ArraySetting("The labels (and their associated keys) that you have either created or recieved.", "UserLabels", new Text[] { }) { @Override public boolean setSetting(Text text) { Frame child = text.getChild(); if (child == null) { return false; } Predicate hasNoData = t -> { List data = t.getData(); return data == null || data.isEmpty(); }; List textItems = child.getBodyTextItems(false); textItems.removeIf(hasNoData); _value = textItems.toArray(new Text[] {}); return true; } @Override public Text generateRepresentation(String label, String frameset) { Text t = new Text(label); createChildFrame(frameset, t, "My Labels"); return t; } }; }