summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/examples/Listing1017.java
diff options
context:
space:
mode:
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/examples/Listing1017.java')
-rw-r--r--Master/Reference Architectures and Patterns/hjp5/examples/Listing1017.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/Master/Reference Architectures and Patterns/hjp5/examples/Listing1017.java b/Master/Reference Architectures and Patterns/hjp5/examples/Listing1017.java
new file mode 100644
index 0000000..78f572c
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/hjp5/examples/Listing1017.java
@@ -0,0 +1,89 @@
+/* Listing1017.java */
+
+class MenuEntry1
+{
+ protected String name;
+
+ public MenuEntry1(String name)
+ {
+ this.name = name;
+ }
+
+ public String toString()
+ {
+ return name;
+ }
+}
+
+class IconizedMenuEntry1
+extends MenuEntry1
+{
+ private String iconName;
+
+ public IconizedMenuEntry1(String name, String iconName)
+ {
+ super(name);
+ this.iconName = iconName;
+ }
+}
+
+class CheckableMenuEntry1
+extends MenuEntry1
+{
+ private boolean checked;
+
+ public CheckableMenuEntry1(String name, boolean checked)
+ {
+ super(name);
+ this.checked = checked;
+ }
+}
+
+class Menu1
+extends MenuEntry1
+{
+ MenuEntry1[] entries;
+ int entryCnt;
+
+ public Menu1(String name, int maxElements)
+ {
+ super(name);
+ this.entries = new MenuEntry1[maxElements];
+ entryCnt = 0;
+ }
+
+ public void add(MenuEntry1 entry)
+ {
+ entries[entryCnt++] = entry;
+ }
+
+ public String toString()
+ {
+ String ret = "(";
+ for (int i = 0; i < entryCnt; ++i) {
+ ret += (i != 0 ? "," : "") + entries[i].toString();
+ }
+ return ret + ")";
+ }
+}
+
+public class Listing1017
+{
+ public static void main(String[] args)
+ {
+ Menu1 filemenu = new Menu1("Datei", 5);
+ filemenu.add(new MenuEntry1("Neu"));
+ filemenu.add(new MenuEntry1("Laden"));
+ filemenu.add(new MenuEntry1("Speichern"));
+
+ Menu1 confmenu = new Menu1("Konfiguration", 3);
+ confmenu.add(new MenuEntry1("Farben"));
+ confmenu.add(new MenuEntry1("Fenster"));
+ confmenu.add(new MenuEntry1("Pfade"));
+ filemenu.add(confmenu);
+
+ filemenu.add(new MenuEntry1("Beenden"));
+
+ System.out.println(filemenu.toString());
+ }
+} \ No newline at end of file