Subversion Repositories Projects

Rev

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