Rev 82 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 82 | Rev 149 | ||
---|---|---|---|
1 | /************************************************** |
1 | /************************************************** |
2 | * |
2 | * |
3 | * class to handle Editing of MK Params |
3 | * class to handle Editing of MK Params |
4 | * |
4 | * |
5 | * Author: Marcus -LiGi- Bueschleb |
5 | * Author: Marcus -LiGi- Bueschleb |
6 | * |
6 | * |
7 | * see README for further Infos |
7 | * see README for further Infos |
8 | * |
8 | * |
9 | *************************************************/ |
9 | *************************************************/ |
10 | 10 | ||
11 | import javax.microedition.lcdui.*; |
11 | import javax.microedition.lcdui.*; |
12 | 12 | ||
13 | 13 | ||
14 | public class MKParamsEditor |
14 | public class MKParamsEditor |
15 | implements MKParamDefinitions |
15 | implements MKParamDefinitions |
16 | { |
16 | { |
17 | 17 | ||
18 | 18 | ||
19 | private int act_tab=0; |
19 | private int act_tab=0; |
20 | private int act_y=0; |
20 | public int act_y=0; |
21 | private int act_lcd_lines=10; |
21 | private int act_lcd_lines=10; |
22 | 22 | ||
23 | DUBwiseCanvas canvas; |
23 | DUBwiseCanvas canvas; |
24 | 24 | ||
25 | public String[] lcd_lines; |
25 | public String[] lcd_lines; |
26 | 26 | ||
27 | 27 | ||
28 | public MKParamsEditor(DUBwiseCanvas _canvas) |
28 | public MKParamsEditor(DUBwiseCanvas _canvas) |
29 | { |
29 | { |
30 | canvas=_canvas; |
30 | canvas=_canvas; |
31 | lcd_lines=new String[40]; |
31 | lcd_lines=new String[40]; |
32 | refresh_lcd(); |
32 | refresh_lcd(); |
33 | } |
33 | } |
34 | 34 | ||
35 | 35 | ||
36 | public void paint ( Graphics g) |
36 | public void paint ( Graphics g) |
37 | { |
37 | { |
38 | refresh_lcd(); |
38 | refresh_lcd(); |
39 | canvas.paint_lcd(g,false); |
39 | canvas.paint_lcd(g,false); |
40 | } |
40 | } |
41 | 41 | ||
42 | 42 | ||
43 | public void refresh_lcd() |
43 | public void refresh_lcd() |
44 | { |
44 | { |
45 | if (canvas.mk!=null) |
45 | if (canvas.mk!=null) |
46 | { |
46 | { |
47 | act_lcd_lines=canvas.mk.params.field_names[act_tab].length*2+1; |
47 | act_lcd_lines=canvas.mk.params.field_names[act_tab].length*2+1; |
48 | for ( int i=0;i<act_lcd_lines;i++) |
48 | for ( int i=0;i<act_lcd_lines;i++) |
49 | lcd_lines[i]=""; |
49 | lcd_lines[i]=""; |
50 | 50 | ||
51 | 51 | ||
52 | try |
52 | try |
53 | { |
53 | { |
54 | 54 | ||
55 | lcd_lines[0]=(act_tab==0?" ":"< ") + canvas.mk.params.tab_names[act_tab] + (act_tab==(canvas.mk.params.tab_names.length-1)?" ":" >"); |
55 | lcd_lines[0]=(act_tab==0?" ":"< ") + canvas.mk.params.tab_names[act_tab] + (act_tab==(canvas.mk.params.tab_names.length-1)?" ":" >"); |
56 | 56 | ||
57 | for (int i=0;i<canvas.mk.params.field_names[act_tab].length;i++) |
57 | for (int i=0;i<canvas.mk.params.field_names[act_tab].length;i++) |
58 | { |
58 | { |
59 | lcd_lines[1+2*i]=canvas.mk.params.field_names[act_tab][i]; |
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) |
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" ) ; |
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) |
62 | if (canvas.mk.params.field_types[act_tab][i]== canvas.mk.params.PARAMTYPE_BYTE) |
63 | { |
63 | { |
64 | lcd_lines[2+2*i]=""+canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][i]); |
64 | lcd_lines[2+2*i]=""+canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][i]); |
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)) |
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)) |
66 | lcd_lines[2+2*i]+="[Poti"+(canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][i])-250) +"]"; |
66 | lcd_lines[2+2*i]+="[Poti"+(canvas.mk.params.get_field_from_act(canvas.mk.params.field_positions[act_tab][i])-250) +"]"; |
67 | } |
67 | } |
68 | 68 | ||
69 | if (canvas.mk.params.field_types[act_tab][i]== canvas.mk.params.PARAMTYPE_STICK) |
69 | if (canvas.mk.params.field_types[act_tab][i]== canvas.mk.params.PARAMTYPE_STICK) |
70 | { |
70 | { |
71 | lcd_lines[2+2*i]=""+canvas.mk.params.get_field_from_act(canvas.mk.params.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]); |
72 | } |
72 | } |
73 | 73 | ||
74 | 74 | ||
75 | 75 | ||
76 | } |
76 | } |
77 | 77 | ||
78 | for (int i=0;i<act_lcd_lines;i++) |
78 | for (int i=0;i<act_lcd_lines;i++) |
79 | { |
79 | { |
80 | lcd_lines[i]=(act_y==i?"#":" ")+lcd_lines[i]; |
80 | lcd_lines[i]=(act_y==i?"#":" ")+lcd_lines[i]; |
81 | } |
81 | } |
82 | 82 | ||
83 | for ( int i=0;i<act_lcd_lines;i++) |
83 | for ( int i=0;i<act_lcd_lines;i++) |
84 | while(lcd_lines[i].length()<20) |
84 | while(lcd_lines[i].length()<20) |
85 | { |
85 | { |
86 | lcd_lines[i]+=" "; |
86 | lcd_lines[i]+=" "; |
87 | } |
87 | } |
88 | } |
88 | } |
89 | catch (Exception e){} |
89 | catch (Exception e){} |
90 | canvas.lcd_lines=new String[act_lcd_lines]; |
90 | canvas.lcd_lines=new String[act_lcd_lines]; |
91 | for(int i=0;i<act_lcd_lines;i++) |
91 | for(int i=0;i<act_lcd_lines;i++) |
92 | canvas.lcd_lines[i]=lcd_lines[i]; |
92 | canvas.lcd_lines[i]=lcd_lines[i]; |
93 | 93 | ||
94 | } |
94 | } |
95 | else |
95 | else |
96 | { |
96 | { |
97 | canvas.lcd_lines=new String[1]; |
97 | canvas.lcd_lines=new String[1]; |
98 | canvas.lcd_lines[0]="reading params"; |
98 | canvas.lcd_lines[0]="reading params"; |
99 | } |
99 | } |
100 | 100 | ||
101 | } |
101 | } |
102 | 102 | ||
103 | 103 | ||
104 | public final static int KEYCODE_CLEAR=-8; |
104 | public final static int KEYCODE_CLEAR=-8; |
105 | 105 | ||
106 | public boolean editing_number=false; |
106 | public boolean editing_number=false; |
107 | 107 | ||
108 | public void keypress (int keyCode,int action) |
108 | public void keypress (int keyCode,int action) |
109 | { |
109 | { |
110 | if (act_y==0) switch (action) |
110 | if (act_y==0) switch (action) |
111 | { |
111 | { |
112 | case Canvas.RIGHT: |
112 | case Canvas.RIGHT: |
113 | if (act_tab<canvas.mk.params.tab_names.length-1) act_tab++; |
113 | if (act_tab<canvas.mk.params.tab_names.length-1) act_tab++; |
114 | break; |
114 | break; |
115 | 115 | ||
116 | case Canvas.LEFT: |
116 | case Canvas.LEFT: |
117 | if (act_tab!=0) act_tab--; |
117 | if (act_tab!=0) act_tab--; |
118 | break; |
118 | break; |
119 | } |
119 | } |
120 | else |
120 | else |
121 | { |
121 | { |
122 | if(canvas.mk.params.field_types[act_tab][act_y/2-1]==canvas.mk.params.PARAMTYPE_BYTE) |
122 | if(canvas.mk.params.field_types[act_tab][act_y/2-1]==canvas.mk.params.PARAMTYPE_BYTE) |
123 | { |
123 | { |
124 | if ((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9)) |
124 | if ((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9)) |
125 | { |
125 | { |
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)) |
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)) |
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)); |
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)); |
128 | else |
128 | else |
129 | canvas.mk.params.set_field_from_act(canvas.mk.params.field_positions[act_tab][act_y/2-1] , (keyCode - Canvas.KEY_NUM0)); |
129 | canvas.mk.params.set_field_from_act(canvas.mk.params.field_positions[act_tab][act_y/2-1] , (keyCode - Canvas.KEY_NUM0)); |
130 | editing_number=true; |
130 | editing_number=true; |
131 | return; |
131 | return; |
132 | } |
132 | } |
133 | else |
133 | else |
134 | if ( keyCode==KEYCODE_CLEAR) |
134 | if ( keyCode==KEYCODE_CLEAR) |
135 | canvas.mk.params.set_field_from_act(canvas.mk.params.field_positions[act_tab][act_y/2-1],0); |
135 | canvas.mk.params.set_field_from_act(canvas.mk.params.field_positions[act_tab][act_y/2-1],0); |
136 | } |
136 | } |
137 | editing_number=false; |
137 | editing_number=false; |
138 | 138 | ||
139 | switch (action) |
139 | switch (action) |
140 | { |
140 | { |
141 | 141 | ||
142 | case Canvas.RIGHT: |
142 | case Canvas.RIGHT: |
143 | switch(canvas.mk.params.field_types[act_tab][act_y/2-1]) |
143 | switch(canvas.mk.params.field_types[act_tab][act_y/2-1]) |
144 | { |
144 | { |
145 | case PARAMTYPE_BITSWITCH: |
145 | case PARAMTYPE_BITSWITCH: |
146 | 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)); |
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; |
148 | break; |
149 | case PARAMTYPE_BYTE: |
149 | case PARAMTYPE_BYTE: |
150 | case PARAMTYPE_STICK: |
150 | case PARAMTYPE_STICK: |
151 | 151 | ||
152 | canvas.mk.params.field_from_act_add(canvas.mk.params.field_positions[act_tab][act_y/2-1],1); |
152 | canvas.mk.params.field_from_act_add(canvas.mk.params.field_positions[act_tab][act_y/2-1],1); |
153 | break; |
153 | break; |
154 | } |
154 | } |
155 | break; |
155 | break; |
156 | 156 | ||
157 | case Canvas.LEFT: |
157 | case Canvas.LEFT: |
158 | switch(canvas.mk.params.field_types[act_tab][act_y/2-1]) |
158 | switch(canvas.mk.params.field_types[act_tab][act_y/2-1]) |
159 | { |
159 | { |
160 | case PARAMTYPE_BITSWITCH: |
160 | case PARAMTYPE_BITSWITCH: |
161 | 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)); |
161 | 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)); |
162 | 162 | ||
163 | break; |
163 | break; |
164 | case PARAMTYPE_BYTE: |
164 | case PARAMTYPE_BYTE: |
165 | case PARAMTYPE_STICK: |
165 | case PARAMTYPE_STICK: |
166 | canvas.mk.params.field_from_act_add(canvas.mk.params.field_positions[act_tab][act_y/2-1],-1); |
166 | canvas.mk.params.field_from_act_add(canvas.mk.params.field_positions[act_tab][act_y/2-1],-1); |
167 | break; |
167 | break; |
168 | } |
168 | } |
169 | 169 | ||
170 | 170 | ||
171 | break; |
171 | break; |
172 | } |
172 | } |
173 | 173 | ||
174 | } |
174 | } |
175 | 175 | ||
176 | switch (action) |
176 | switch (action) |
177 | { |
177 | { |
178 | 178 | ||
179 | case Canvas.DOWN: |
179 | case Canvas.DOWN: |
180 | if (act_y<(act_lcd_lines-2)) act_y+=2; |
180 | if (act_y<(act_lcd_lines-2)) act_y+=2; |
181 | else act_y=0; |
181 | else act_y=0; |
182 | break; |
182 | break; |
183 | 183 | ||
184 | case Canvas.UP: |
184 | case Canvas.UP: |
185 | if (act_y!=0) act_y-=2; |
185 | if (act_y!=0) act_y-=2; |
186 | else act_y=act_lcd_lines-1; |
186 | else act_y=act_lcd_lines-1; |
187 | break; |
187 | break; |
188 | 188 | ||
189 | } |
189 | } |
190 | 190 | ||
191 | refresh_lcd(); |
191 | refresh_lcd(); |
192 | 192 | ||
193 | 193 | ||
194 | } |
194 | } |
195 | } |
195 | } |
196 | 196 | ||
197 | 197 |