From ee020e75a5de0c1e54557db79f77edc50e05ea04 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Sat, 25 Apr 2020 15:04:39 +0200 Subject: [PATCH] Meta: allow hidden fields --- resources/Meta.java | 10 ++++++++++ resources/MetaInfo.java | 18 ++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/resources/Meta.java b/resources/Meta.java index 8ed74dc..fb4d491 100644 --- a/resources/Meta.java +++ b/resources/Meta.java @@ -60,6 +60,16 @@ public @interface Meta { * @return what it is */ String description() default ""; + + /** + * This item should be hidden from the user (she will still be able to + * modify it if she opens the file manually). + *

+ * Defaults to FALSE (visible). + * + * @return TRUE if it should stay hidden + */ + boolean hidden() default false; /** * This item is only used as a group, not as an option. diff --git a/resources/MetaInfo.java b/resources/MetaInfo.java index 917c210..70c6c43 100644 --- a/resources/MetaInfo.java +++ b/resources/MetaInfo.java @@ -27,6 +27,7 @@ public class MetaInfo> implements Iterable> { private List saveListeners = new ArrayList(); private String name; + private boolean hidden; private String description; private boolean dirty; @@ -90,6 +91,7 @@ public class MetaInfo> implements Iterable> { } this.name = name; + this.hidden = meta.hidden(); this.description = description; reload(); @@ -110,6 +112,16 @@ public class MetaInfo> implements Iterable> { public String getName() { return name; } + + /** + * This item should be hidden from the user (she will still be able to + * modify it if she opens the file manually). + * + * @return TRUE if it should stay hidden + */ + public boolean isHidden() { + return hidden; + } /** * A description for this item: what it is or does, how to explain that item @@ -682,8 +694,10 @@ public class MetaInfo> implements Iterable> { List> shadow = new ArrayList>(); for (E id : type.getEnumConstants()) { MetaInfo info = new MetaInfo(type, bundle, id); - list.add(info); - shadow.add(info); + if (!info.hidden) { + list.add(info); + shadow.add(info); + } } for (int i = 0; i < list.size(); i++) { -- 2.27.0