Rev 206 | Rev 221 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 206 | Rev 220 | ||
---|---|---|---|
Line 10... | Line 10... | ||
10 | 10 | ||
11 | public class MKParamsEditor |
11 | public class MKParamsEditor |
12 | implements org.ligi.ufo.MKParamDefinitions |
12 | implements org.ligi.ufo.MKParamDefinitions |
Line -... | Line 13... | ||
- | 13 | { |
|
Line 13... | Line 14... | ||
13 | { |
14 | |
14 | 15 | public byte nextstate; |
|
15 | 16 | ||
Line 16... | Line 17... | ||
16 | private int act_tab=0; |
17 | private int act_tab=0; |
Line -... | Line 18... | ||
- | 18 | public int act_y=1; |
|
Line 17... | Line 19... | ||
17 | public int act_y=0; |
19 | private int act_lcd_lines=10; |
Line 18... | Line 20... | ||
18 | private int act_lcd_lines=10; |
20 | |
Line 19... | Line 21... | ||
19 | 21 | DUBwiseCanvas canvas; |
|
20 | DUBwiseCanvas canvas; |
22 | |
- | 23 | public String[] lcd_lines; |
|
- | 24 | ||
- | 25 | public String[] menu_items; |
|
21 | 26 | ||
22 | 27 | org.ligi.ufo.ParamsClass edit_source; |
|
23 | // org.ligi.ufo.MKCommunicator _mk; |
28 | |
24 | 29 | ||
Line -... | Line 30... | ||
- | 30 | public MKParamsEditor(DUBwiseCanvas _canvas,org.ligi.ufo.ParamsClass _edit_source,byte _nextstate) |
|
- | 31 | { |
|
- | 32 | nextstate=_nextstate; |
|
- | 33 | edit_source=_edit_source; |
|
25 | public String[] lcd_lines; |
34 | |
26 | 35 | canvas=_canvas; |
|
- | 36 | lcd_lines=new String[40]; |
|
- | 37 | // refresh_lcd(); |
|
- | 38 | } |
|
- | 39 | ||
- | 40 | ||
- | 41 | boolean select_mode=true; |
|
- | 42 | ||
- | 43 | ||
- | 44 | public void paint ( Graphics g) |
|
- | 45 | { |
|
- | 46 | if (select_mode) |
|
- | 47 | { |
|
- | 48 | if (canvas.menu_items[0]!=edit_source.tab_names[0]) // usefull? |
|
- | 49 | { |
|
- | 50 | act_y=1; |
|
- | 51 | menu_items=new String[edit_source.tab_names.length+1]; |
|
27 | 52 | for(int p=0;p<edit_source.tab_names.length;p++) |
|
28 | public MKParamsEditor(DUBwiseCanvas _canvas) |
53 | menu_items[p]=edit_source.tab_names[p]; |
- | 54 | menu_items[edit_source.tab_names.length]="back"; |
|
- | 55 | canvas.setup_menu(menu_items,null); |
|
29 | { |
56 | } |
Line 30... | Line 57... | ||
30 | canvas=_canvas; |
57 | canvas.paint_menu(g); |
31 | lcd_lines=new String[40]; |
58 | } |
Line 32... | Line -... | ||
32 | // refresh_lcd(); |
- | |
33 | } |
59 | |
34 | 60 | else |
|
- | 61 | { |
|
35 | public void paint ( Graphics g) |
62 | refresh_lcd(); |
36 | { |
63 | // canvas.paint_lcd(g,false); |
Line 37... | Line -... | ||
37 | refresh_lcd(); |
- | |
38 | canvas.paint_lcd(g,false); |
- | |
Line 39... | Line 64... | ||
39 | } |
64 | canvas.paint_lcd(g,true); |
Line 40... | Line 65... | ||
40 | 65 | } |
|
41 | - | ||
42 | public void refresh_lcd() |
- | |
43 | { |
- | |
44 | - | ||
45 | if (canvas.mk!=null) |
- | |
46 | { |
66 | } |
47 | act_lcd_lines=canvas.mk.params.field_names[act_tab].length*2+1; |
67 | |
48 | for ( int i=0;i<act_lcd_lines;i++) |
- | |
49 | lcd_lines[i]=""; |
- | |
50 | - | ||
Line 51... | Line 68... | ||
51 | 68 | ||
52 | try |
69 | public void refresh_lcd() |
- | 70 | { |
|
53 | { |
71 | |
54 | 72 | try { |
|
- | 73 | act_lcd_lines=edit_source.field_names[act_tab].length*2+2; |
|
- | 74 | ||
- | 75 | for ( int i=0;i<act_lcd_lines;i++) |
|
- | 76 | lcd_lines[i]=""; |
|
- | 77 | ||
Line -... | Line 78... | ||
- | 78 | ||
- | 79 | ||
- | 80 | // lcd_lines[0]=(act_tab==0?" ":"< ") + edit_source.tab_names[act_tab] + (act_tab==(edit_source.tab_names.length-1)?" ":" >"); |
|
- | 81 | ||
Line -... | Line 82... | ||
- | 82 | for (int i=0;i<edit_source.field_names[act_tab].length;i++) |
|
- | 83 | { |
|
- | 84 | lcd_lines[2*i]=edit_source.field_names[act_tab][i]; |
|
Line 55... | Line 85... | ||
55 | lcd_lines[0]=(act_tab==0?" ":"< ") + canvas.mk.params.tab_names[act_tab] + (act_tab==(canvas.mk.params.tab_names.length-1)?" ":" >"); |
85 | |
Line -... | Line 86... | ||
- | 86 | switch(edit_source.field_types[act_tab][i]) |
|
- | 87 | { |
|
- | 88 | case PARAMTYPE_BITSWITCH: |
|
56 | 89 | lcd_lines[1+2*i]=(((edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]/8)&(1<<edit_source.field_positions[act_tab][i]%8))==0)?"off":"on" ) ; |
|
57 | for (int i=0;i<canvas.mk.params.field_names[act_tab].length;i++) |
90 | break; |
58 | { |
91 | case PARAMTYPE_BYTE: |
59 | lcd_lines[1+2*i]=canvas.mk.params.field_names[act_tab][i]; |
- | |
60 | if (canvas.mk.params.field_types[act_tab][i]== canvas.mk.params.PARAMTYPE_BITSWITCH) |
- | |
61 | lcd_lines[2+2*i]=(((canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][i]/8)&(1<<canvas.mk.params.field_positions[act_tab][i]%8))==0)?"off":"on" ) ; |
- | |
62 | if (canvas.mk.params.field_types[act_tab][i]== canvas.mk.params.PARAMTYPE_BYTE) |
92 | lcd_lines[1+2*i]=""+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]); |
63 | { |
- | |
64 | lcd_lines[2+2*i]=""+canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][i]); |
93 | if ((edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])>250)&&(edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])<256)) |
- | 94 | lcd_lines[2+2*i]+="[Poti"+(edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])-250) +"]"; break; |
|
- | 95 | ||
65 | if ((canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][i])>250)&&(canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][i])<256)) |
96 | |
- | 97 | case PARAMTYPE_KEY: |
|
66 | lcd_lines[2+2*i]+="[Poti"+(canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][i])-250) +"]"; |
98 | case PARAMTYPE_STICK: |
- | 99 | lcd_lines[1+2*i]=""+edit_source.get_field_from_act(edit_source.field_positions[act_tab][i]); |
|
67 | } |
100 | break; |
68 | - | ||
69 | if (canvas.mk.params.field_types[act_tab][i]== canvas.mk.params.PARAMTYPE_STICK) |
- | |
70 | { |
- | |
Line -... | Line 101... | ||
- | 101 | ||
- | 102 | default: |
|
- | 103 | lcd_lines[1+2*i]=""+edit_source.choice_strings[edit_source.field_types[act_tab][i]-PARAMTYPE_CHOICE][edit_source.get_field_from_act(edit_source.field_positions[act_tab][i])]; |
|
71 | lcd_lines[2+2*i]=""+canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][i]); |
104 | } |
72 | } |
105 | |
73 | 106 | } |
|
74 | 107 | ||
75 | 108 | lcd_lines[act_lcd_lines-1]="back"; |
|
76 | } |
109 | |
77 | 110 | canvas.lcd_lines=new String[act_lcd_lines]; |
|
78 | for (int i=0;i<act_lcd_lines;i++) |
111 | for ( int i=0;i<act_lcd_lines;i++) |
Line 79... | Line 112... | ||
79 | { |
112 | { |
Line 80... | Line 113... | ||
80 | lcd_lines[i]=(act_y==i?"#":" ")+lcd_lines[i]; |
113 | lcd_lines[i]=(act_y==i?"#":" ")+lcd_lines[i]; |
Line 81... | Line 114... | ||
81 | } |
114 | while(lcd_lines[i].length()<20) |
82 | 115 | lcd_lines[i]+=" "; |
|
- | 116 | ||
- | 117 | canvas.lcd_lines[i]=lcd_lines[i]; |
|
- | 118 | } |
|
83 | for ( int i=0;i<act_lcd_lines;i++) |
119 | |
84 | while(lcd_lines[i].length()<20) |
120 | } |
85 | { |
- | |
86 | lcd_lines[i]+=" "; |
- | |
87 | } |
- | |
Line -... | Line 121... | ||
- | 121 | ||
88 | } |
122 | catch (Exception e){} |
- | 123 | ||
- | 124 | // for(int i=0;i<act_lcd_lines;i++) |
|
- | 125 | ||
89 | catch (Exception e){} |
126 | /* |
- | 127 | } |
|
- | 128 | else |
|
- | 129 | { |
|
- | 130 | canvas.lcd_lines=new String[1]; |
|
90 | canvas.lcd_lines=new String[act_lcd_lines]; |
131 | canvas.lcd_lines[0]="reading params"; |
- | 132 | } |
|
91 | for(int i=0;i<act_lcd_lines;i++) |
133 | */ |
92 | canvas.lcd_lines[i]=lcd_lines[i]; |
134 | } |
93 | 135 | ||
- | 136 | ||
- | 137 | public final static int KEYCODE_CLEAR=-8; |
|
- | 138 | ||
- | 139 | public boolean editing_number=false; |
|
- | 140 | ||
94 | } |
141 | public void keypress (int keyCode,int action) |
95 | else |
142 | { |
96 | { |
143 | |
97 | canvas.lcd_lines=new String[1]; |
144 | if (select_mode) |
98 | canvas.lcd_lines[0]="reading params"; |
145 | { |
99 | } |
146 | if (action== Canvas.FIRE) |
100 | 147 | { |
|
101 | } |
148 | |
102 | 149 | if (canvas.act_menu_select==(menu_items.length-1)) |
|
103 | 150 | canvas.chg_state(nextstate); |
|
104 | public final static int KEYCODE_CLEAR=-8; |
151 | else |
105 | 152 | ||
106 | public boolean editing_number=false; |
153 | { |
107 | 154 | act_tab=canvas.act_menu_select; |
|
108 | public void keypress (int keyCode,int action) |
155 | select_mode=false; |
109 | { |
156 | act_y=1; |
Line -... | Line 157... | ||
- | 157 | } |
|
- | 158 | } |
|
- | 159 | else |
|
- | 160 | canvas.menu_keypress(keyCode); |
|
- | 161 | } |
|
- | 162 | else |
|
- | 163 | { |
|
- | 164 | ||
- | 165 | ||
- | 166 | if ((act_y!=(act_lcd_lines-1))&&(((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9))|| ( keyCode==KEYCODE_CLEAR))) |
|
- | 167 | { |
|
- | 168 | int act_pos=act_y/2; |
|
- | 169 | if((edit_source.field_types[act_tab][act_pos]==edit_source.PARAMTYPE_BYTE)) |
|
- | 170 | { |
|
- | 171 | if ((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9)) |
|
- | 172 | { |
|
- | 173 | if((editing_number)&&( Math.abs(edit_source.get_field_from_act(edit_source.field_positions[act_tab][act_pos]))*10+(keyCode - Canvas.KEY_NUM0)<1000)) |
|
- | 174 | edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos] , Math.abs(edit_source.get_field_from_act(edit_source.field_positions[act_tab][act_pos]))*10+(keyCode - Canvas.KEY_NUM0)); |
|
- | 175 | else |
|
- | 176 | edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos] , (keyCode - Canvas.KEY_NUM0)); |
|
- | 177 | editing_number=true; |
|
- | 178 | return; |
|
- | 179 | } |
|
- | 180 | else |
|
- | 181 | if ( keyCode==KEYCODE_CLEAR) |
|
- | 182 | edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos],0); |
|
- | 183 | } |
|
- | 184 | editing_number=false; |
|
- | 185 | ||
110 | if (act_y==0) switch (action) |
186 | } |
111 | { |
187 | |
Line 112... | Line 188... | ||
112 | case Canvas.RIGHT: |
188 | switch (action) |
113 | if (act_tab<canvas.mk.params.tab_names.length-1) act_tab++; |
189 | { |
114 | break; |
190 | |
115 | 191 | case Canvas.DOWN: |
|
Line 116... | Line 192... | ||
116 | case Canvas.LEFT: |
192 | if (act_y<(act_lcd_lines-2)) act_y+=2; |
117 | if (act_tab!=0) act_tab--; |
193 | else act_y=1; |
- | 194 | break; |
|
- | 195 | ||
118 | break; |
196 | case Canvas.UP: |
119 | } |
197 | if (act_y!=1) act_y-=2; |
Line 120... | Line 198... | ||
120 | else |
198 | else act_y=act_lcd_lines-1; |
- | 199 | break; |
|
- | 200 | ||
- | 201 | default: |
|
- | 202 | ||
121 | { |
203 | |
122 | if(canvas.mk.params.field_types[act_tab][act_y/2-1]==canvas.mk.params.PARAMTYPE_BYTE) |
204 | |
123 | { |
205 | if (act_y!=(act_lcd_lines-1)) |
Line 124... | Line 206... | ||
124 | if ((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9)) |
206 | { |
125 | { |
207 | |
126 | if((editing_number)&&( Math.abs(canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][act_y/2-1]))*10+(keyCode - Canvas.KEY_NUM0)<1000)) |
208 | // |
127 | canvas.mk.params.set_field_from_act(canvas.mk.params.field_positions[act_tab][act_y/2-1] , Math.abs(canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][act_y/2-1]))*10+(keyCode - Canvas.KEY_NUM0)); |
209 | |
128 | else |
210 | int act_pos=act_y/2; |
Line 129... | Line 211... | ||
129 | canvas.mk.params.set_field_from_act(canvas.mk.params.field_positions[act_tab][act_y/2-1] , (keyCode - Canvas.KEY_NUM0)); |
211 | |
130 | editing_number=true; |
212 | if((edit_source.field_types[act_tab][act_pos]==edit_source.PARAMTYPE_KEY)) |
131 | return; |
213 | edit_source.set_field_from_act(edit_source.field_positions[act_tab][act_pos],keyCode); |
132 | } |
214 | |
- | 215 | switch (action) |
|
- | 216 | { |
|
- | 217 | ||
133 | else |
218 | case Canvas.RIGHT: |
134 | if ( keyCode==KEYCODE_CLEAR) |
219 | switch(edit_source.field_types[act_tab][act_pos]) |
Line 135... | Line 220... | ||
135 | canvas.mk.params.set_field_from_act(canvas.mk.params.field_positions[act_tab][act_y/2-1],0); |
220 | { |
136 | } |
221 | case PARAMTYPE_BITSWITCH: |
Line 137... | Line 222... | ||
137 | editing_number=false; |
222 | |
138 | 223 | edit_source.field_from_act_xor((edit_source.field_positions[act_tab][act_pos]/8),1<<(edit_source.field_positions[act_tab][act_pos]%8)); |
|
139 | switch (action) |
224 | break; |
140 | { |
225 | |
- | 226 | ||
- | 227 | case PARAMTYPE_BYTE: |
|
- | 228 | case PARAMTYPE_STICK: |
|
Line 141... | Line -... | ||
141 | - | ||
142 | case Canvas.RIGHT: |
- | |
143 | switch(canvas.mk.params.field_types[act_tab][act_y/2-1]) |
- | |
144 | { |
229 | |
145 | case PARAMTYPE_BITSWITCH: |
- | |
146 | - | ||
147 | canvas.mk.params.field_from_act_xor((canvas.mk.params.field_positions[act_tab][act_y/2-1]/8),1<<(canvas.mk.params.field_positions[act_tab][act_y/2-1]%8)); |
- | |
148 | break; |
- | |
149 | case PARAMTYPE_BYTE: |
- | |
150 | case PARAMTYPE_STICK: |
- | |
151 | 230 | edit_source.field_from_act_add(edit_source.field_positions[act_tab][act_pos],1); |
|
Line 152... | Line -... | ||
152 | canvas.mk.params.field_from_act_add(canvas.mk.params.field_positions[act_tab][act_y/2-1],1); |
- | |
Line -... | Line 231... | ||
- | 231 | break; |
|
Line 153... | Line 232... | ||
153 | break; |
232 | |
- | 233 | default: |
|
154 | } |
234 | edit_source.field_from_act_add_mod(edit_source.field_positions[act_tab][act_pos],1,edit_source.choice_strings[edit_source.field_types[act_tab][act_pos]-PARAMTYPE_CHOICE].length); |