Subversion Repository Public Repository

litesoft

Diff Revisions 949 vs 950 for /trunk/Java/GWT/Client/src/org/litesoft/GWT/client/KeyboardKeyModifier.java

Diff revisions: vs.
  @@ -1,206 +1,206 @@
1 - // This Source Code is in the Public Domain per: http://unlicense.org
2 - package org.litesoft.GWT.client;
3 -
4 - import java.io.*;
5 -
6 - public enum KeyboardKeyModifier implements KeyboardKeyModifierBits,
7 - Serializable {
8 - None,
9 - Shift {
10 - @Override
11 - public int getBits() {
12 - return iSHIFT;
13 - }
14 - },
15 - Ctrl {
16 - @Override
17 - public int getBits() {
18 - return iCTRL;
19 - }
20 - },
21 - Alt {
22 - @Override
23 - public int getBits() {
24 - return iALT;
25 - }
26 - },
27 - Meta {
28 - @Override
29 - public int getBits() {
30 - return iMETA;
31 - }
32 - },
33 - Ctrl_Alt {
34 - @Override
35 - public int getBits() {
36 - return iCTRL_ALT;
37 - }
38 - },
39 - Ctrl_Meta {
40 - @Override
41 - public int getBits() {
42 - return iCTRL_META;
43 - }
44 - },
45 - Ctrl_Shift {
46 - @Override
47 - public int getBits() {
48 - return iCTRL_SHIFT;
49 - }
50 - },
51 - Alt_Meta {
52 - @Override
53 - public int getBits() {
54 - return iALT_META;
55 - }
56 - },
57 - Alt_Shift {
58 - @Override
59 - public int getBits() {
60 - return iALT_SHIFT;
61 - }
62 - },
63 - Meta_Shift {
64 - @Override
65 - public int getBits() {
66 - return iMETA_SHIFT;
67 - }
68 - },
69 - Ctrl_Alt_Meta {
70 - @Override
71 - public int getBits() {
72 - return iCTRL_ALT_META;
73 - }
74 - },
75 - Ctrl_Alt_Shift {
76 - @Override
77 - public int getBits() {
78 - return iCTRL_ALT_SHIFT;
79 - }
80 - },
81 - Ctrl_Meta_Shift {
82 - @Override
83 - public int getBits() {
84 - return iCTRL_META_SHIFT;
85 - }
86 - },
87 - Alt_Meta_Shift {
88 - @Override
89 - public int getBits() {
90 - return iALT_META_SHIFT;
91 - }
92 - },
93 - Ctrl_Alt_Meta_Shift {
94 - @Override
95 - public int getBits() {
96 - return iCTRL_ALT_META_SHIFT;
97 - }
98 - };
99 -
100 - public static final long serialVersionUID = 1L;
101 -
102 - public static KeyboardKeyModifier deNull( KeyboardKeyModifier pModifiers ) {
103 - return (pModifiers != null) ? pModifiers : None;
104 - }
105 -
106 - public int getBits() {
107 - return 0;
108 - }
109 -
110 - public boolean isCtrl() {
111 - return hasBit( iCTRL );
112 - }
113 -
114 - public boolean isAlt() {
115 - return hasBit( iALT );
116 - }
117 -
118 - public boolean isMeta() {
119 - return hasBit( iMETA );
120 - }
121 -
122 - public boolean isShift() {
123 - return hasBit( iSHIFT );
124 - }
125 -
126 - public KeyboardKeyModifier addCtrl() {
127 - return add( Ctrl );
128 - }
129 -
130 - public KeyboardKeyModifier addAlt() {
131 - return add( Alt );
132 - }
133 -
134 - public KeyboardKeyModifier addMeta() {
135 - return add( Ctrl );
136 - }
137 -
138 - public KeyboardKeyModifier addShift() {
139 - return add( Shift );
140 - }
141 -
142 - public KeyboardKeyModifier add( KeyboardKeyModifier them ) {
143 - if ( them != null ) {
144 - int zCurBits = this.getBits();
145 - int zModBits = them.getBits();
146 - int zNewBits = zCurBits | zModBits;
147 - if ( zCurBits != zNewBits ) {
148 - return (zModBits == zNewBits) ? them : fromBits( zNewBits );
149 - }
150 - }
151 - return this;
152 - }
153 -
154 - public KeyboardKeyModifier removeCtrl() {
155 - return remove( Ctrl );
156 - }
157 -
158 - public KeyboardKeyModifier removeAlt() {
159 - return remove( Alt );
160 - }
161 -
162 - public KeyboardKeyModifier removeMeta() {
163 - return remove( Ctrl );
164 - }
165 -
166 - public KeyboardKeyModifier removeShift() {
167 - return remove( Shift );
168 - }
169 -
170 - public KeyboardKeyModifier remove( KeyboardKeyModifier them ) {
171 - if ( them != null ) {
172 - int zCurBits = this.getBits();
173 - int zModBits = them.getBits();
174 - int zSharedBits = zCurBits & zModBits;
175 - if ( zSharedBits != 0 ) {
176 - int zNewBits = zCurBits - zSharedBits;
177 - return (zNewBits == 0) ? None : fromBits( zNewBits );
178 - }
179 - }
180 - return this;
181 - }
182 -
183 - private boolean hasBit( int pBit ) {
184 - return 0 != (getBits() & pBit);
185 - }
186 -
187 - public static KeyboardKeyModifier fromBits( int pBits )
188 - throws IllegalArgumentException {
189 - KeyboardKeyModifier zModifier = LLfromBits( pBits );
190 - int zXtraBits = pBits - zModifier.getBits();
191 - if ( zXtraBits == 0 ) {
192 - return zModifier;
193 - }
194 - throw new IllegalArgumentException( "KeyboardKeyModifier '" + zModifier + "' w/ extra bits: " + zXtraBits );
195 - }
196 -
197 - private static KeyboardKeyModifier LLfromBits( int pBits ) {
198 - int zValidBits = pBits & iCTRL_ALT_META_SHIFT;
199 - for ( KeyboardKeyModifier zModifier : values() ) {
200 - if ( zValidBits == zModifier.getBits() ) {
201 - return zModifier;
202 - }
203 - }
204 - throw new Error( "No KeyboardKeyModifier w/ bits: " + pBits );
205 - }
206 - }
1 + // This Source Code is in the Public Domain per: http://unlicense.org
2 + package org.litesoft.GWT.client;
3 +
4 + import java.io.*;
5 +
6 + public enum KeyboardKeyModifier implements KeyboardKeyModifierBits,
7 + Serializable {
8 + None,
9 + Shift {
10 + @Override
11 + public int getBits() {
12 + return iSHIFT;
13 + }
14 + },
15 + Ctrl {
16 + @Override
17 + public int getBits() {
18 + return iCTRL;
19 + }
20 + },
21 + Alt {
22 + @Override
23 + public int getBits() {
24 + return iALT;
25 + }
26 + },
27 + Meta {
28 + @Override
29 + public int getBits() {
30 + return iMETA;
31 + }
32 + },
33 + Ctrl_Alt {
34 + @Override
35 + public int getBits() {
36 + return iCTRL_ALT;
37 + }
38 + },
39 + Ctrl_Meta {
40 + @Override
41 + public int getBits() {
42 + return iCTRL_META;
43 + }
44 + },
45 + Ctrl_Shift {
46 + @Override
47 + public int getBits() {
48 + return iCTRL_SHIFT;
49 + }
50 + },
51 + Alt_Meta {
52 + @Override
53 + public int getBits() {
54 + return iALT_META;
55 + }
56 + },
57 + Alt_Shift {
58 + @Override
59 + public int getBits() {
60 + return iALT_SHIFT;
61 + }
62 + },
63 + Meta_Shift {
64 + @Override
65 + public int getBits() {
66 + return iMETA_SHIFT;
67 + }
68 + },
69 + Ctrl_Alt_Meta {
70 + @Override
71 + public int getBits() {
72 + return iCTRL_ALT_META;
73 + }
74 + },
75 + Ctrl_Alt_Shift {
76 + @Override
77 + public int getBits() {
78 + return iCTRL_ALT_SHIFT;
79 + }
80 + },
81 + Ctrl_Meta_Shift {
82 + @Override
83 + public int getBits() {
84 + return iCTRL_META_SHIFT;
85 + }
86 + },
87 + Alt_Meta_Shift {
88 + @Override
89 + public int getBits() {
90 + return iALT_META_SHIFT;
91 + }
92 + },
93 + Ctrl_Alt_Meta_Shift {
94 + @Override
95 + public int getBits() {
96 + return iCTRL_ALT_META_SHIFT;
97 + }
98 + };
99 +
100 + public static final long serialVersionUID = 1L;
101 +
102 + public static KeyboardKeyModifier deNull( KeyboardKeyModifier pModifiers ) {
103 + return (pModifiers != null) ? pModifiers : None;
104 + }
105 +
106 + public int getBits() {
107 + return 0;
108 + }
109 +
110 + public boolean isCtrl() {
111 + return hasBit( iCTRL );
112 + }
113 +
114 + public boolean isAlt() {
115 + return hasBit( iALT );
116 + }
117 +
118 + public boolean isMeta() {
119 + return hasBit( iMETA );
120 + }
121 +
122 + public boolean isShift() {
123 + return hasBit( iSHIFT );
124 + }
125 +
126 + public KeyboardKeyModifier addCtrl() {
127 + return add( Ctrl );
128 + }
129 +
130 + public KeyboardKeyModifier addAlt() {
131 + return add( Alt );
132 + }
133 +
134 + public KeyboardKeyModifier addMeta() {
135 + return add( Ctrl );
136 + }
137 +
138 + public KeyboardKeyModifier addShift() {
139 + return add( Shift );
140 + }
141 +
142 + public KeyboardKeyModifier add( KeyboardKeyModifier them ) {
143 + if ( them != null ) {
144 + int zCurBits = this.getBits();
145 + int zModBits = them.getBits();
146 + int zNewBits = zCurBits | zModBits;
147 + if ( zCurBits != zNewBits ) {
148 + return (zModBits == zNewBits) ? them : fromBits( zNewBits );
149 + }
150 + }
151 + return this;
152 + }
153 +
154 + public KeyboardKeyModifier removeCtrl() {
155 + return remove( Ctrl );
156 + }
157 +
158 + public KeyboardKeyModifier removeAlt() {
159 + return remove( Alt );
160 + }
161 +
162 + public KeyboardKeyModifier removeMeta() {
163 + return remove( Ctrl );
164 + }
165 +
166 + public KeyboardKeyModifier removeShift() {
167 + return remove( Shift );
168 + }
169 +
170 + public KeyboardKeyModifier remove( KeyboardKeyModifier them ) {
171 + if ( them != null ) {
172 + int zCurBits = this.getBits();
173 + int zModBits = them.getBits();
174 + int zSharedBits = zCurBits & zModBits;
175 + if ( zSharedBits != 0 ) {
176 + int zNewBits = zCurBits - zSharedBits;
177 + return (zNewBits == 0) ? None : fromBits( zNewBits );
178 + }
179 + }
180 + return this;
181 + }
182 +
183 + private boolean hasBit( int pBit ) {
184 + return 0 != (getBits() & pBit);
185 + }
186 +
187 + public static KeyboardKeyModifier fromBits( int pBits )
188 + throws IllegalArgumentException {
189 + KeyboardKeyModifier zModifier = LLfromBits( pBits );
190 + int zXtraBits = pBits - zModifier.getBits();
191 + if ( zXtraBits == 0 ) {
192 + return zModifier;
193 + }
194 + throw new IllegalArgumentException( "KeyboardKeyModifier '" + zModifier + "' w/ extra bits: " + zXtraBits );
195 + }
196 +
197 + private static KeyboardKeyModifier LLfromBits( int pBits ) {
198 + int zValidBits = pBits & iCTRL_ALT_META_SHIFT;
199 + for ( KeyboardKeyModifier zModifier : values() ) {
200 + if ( zValidBits == zModifier.getBits() ) {
201 + return zModifier;
202 + }
203 + }
204 + throw new Error( "No KeyboardKeyModifier w/ bits: " + pBits );
205 + }
206 + }