Subversion Repositories Projects

Rev

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);