Salome HOME
Copyrights update 2015.
[tools/siman.git] / Workspace / Siman / src / org / splat / wapp / MenuItem.java
1 package org.splat.wapp;
2
3 public class MenuItem extends Item {
4
5         private static final long serialVersionUID = 1002251657309138413L;
6
7         protected static class Group extends MenuItem {
8                 private transient boolean _open = false;
9                 /**
10                  * Serial version ID.
11                  */
12                 private static final long serialVersionUID = 8319750643667219000L;
13
14                 protected Group(final String label) {
15                         super(label);
16                 }
17
18                 protected Group(final String label, final String icon, final String url) {
19                         super(label, icon, url);
20                 }
21
22                 @Override
23                 public boolean isOpen() {
24                         return _open;
25                 }
26
27                 public void open() {
28                         _open = true;
29                 }
30         }
31
32         protected static class SubItem extends MenuItem {
33                 /**
34                  * Serial version ID.
35                  */
36                 private static final long serialVersionUID = -4793172296421132566L;
37
38                 protected SubItem(final String label) {
39                         super(label);
40                 }
41
42                 protected SubItem(final String label, final String icon, final String url) {
43                         super(label, icon, url);
44                 }
45         }
46
47         // ==============================================================================================================================
48         // Construction
49         // ==============================================================================================================================
50
51         public MenuItem(final String label) {
52                 super(label);
53         }
54
55         public MenuItem(final String label, final String icon, final String url) {
56                 super(label, url);
57                 this.icon(icon);
58         }
59
60         @Override
61         public MenuItem action(final String url) {
62                 super.action(url);
63                 return this;
64         }
65
66         @Override
67         final public MenuItem icon(final String icon) {
68                 super.icon(icon);
69                 return this;
70         }
71
72         // ==============================================================================================================================
73         // Member functions
74         // ==============================================================================================================================
75
76         public boolean isGroup() {
77                 return (this instanceof Group);
78         }
79
80         public boolean isOpen() {
81                 return false; // Redefined in the Group subclass
82         }
83
84         public boolean isSubItem() {
85                 return (this instanceof SubItem);
86         }
87 }