Revision 3883 trunk/extensions/extCAD/src/com/iver/cit/gvsig/gui/cad/tools/smc/CircleCADToolContext.java

View differences:

CircleCADToolContext.java
169 169
            super (name, id);
170 170
        }
171 171

  
172
        protected void addOption(CircleCADToolContext context, String s)
173
        {
174
            CircleCADTool ctxt = context.getOwner();
175

  
176
            if (s.equals("Cancelar"))
177
            {
178
                boolean loopbackFlag =
179
                    context.getState().getName().equals(
180
                        ExecuteMap.Initial.getName());
181

  
182
                if (loopbackFlag == false)
183
                {
184
                    (context.getState()).Exit(context);
185
                }
186

  
187
                context.clearState();
188
                try
189
                {
190
                    ctxt.end();
191
                }
192
                finally
193
                {
194
                    context.setState(ExecuteMap.Initial);
195

  
196
                    if (loopbackFlag == false)
197
                    {
198
                        (context.getState()).Entry(context);
199
                    }
200

  
201
                }
202
            }
203
            else
204
            {
205
                super.addOption(context, s);
206
            }
207

  
208
            return;
209
        }
210

  
172 211
    //-----------------------------------------------------------
173 212
    // Inner classse.
174 213
    //
......
190 229
            {
191 230
                CircleCADTool ctxt = context.getOwner();
192 231

  
193
                ctxt.init();
194 232
                ctxt.setQuestion("CIRCULO" + "\n" +
195 233
		"Insertar punto central o [3P]:");
234
                ctxt.setDescription(new String[]{"Cancelar", "3P"});
196 235
                return;
197 236
            }
198 237

  
......
200 239
            {
201 240
                CircleCADTool ctxt = context.getOwner();
202 241

  
242
                if (s.equals("3p") || s.equals("3P"))
243
                {
203 244

  
204
                (context.getState()).Exit(context);
205
                context.clearState();
206
                try
207
                {
208
                    ctxt.setQuestion("Insertar primer punto");
209
                    ctxt.addOption(s);
245
                    (context.getState()).Exit(context);
246
                    context.clearState();
247
                    try
248
                    {
249
                        ctxt.setQuestion("Insertar primer punto");
250
                        ctxt.setDescription(new String[]{"Cancelar"});
251
                        ctxt.addOption(s);
252
                    }
253
                    finally
254
                    {
255
                        context.setState(ExecuteMap.Seventh);
256
                        (context.getState()).Entry(context);
257
                    }
210 258
                }
211
                finally
259
                else
212 260
                {
213
                    context.setState(ExecuteMap.Seventh);
214
                    (context.getState()).Entry(context);
261
                    super.addOption(context, s);
215 262
                }
263

  
216 264
                return;
217 265
            }
218 266

  
......
226 274
                try
227 275
                {
228 276
                    ctxt.setQuestion("Insertar radio o segundo punto");
277
                    ctxt.setDescription(new String[]{"Cancelar"});
229 278
                    ctxt.addPoint(pointX, pointY);
230 279
                }
231 280
                finally
......
320 369
                try
321 370
                {
322 371
                    ctxt.setQuestion("Insertar tercer punto");
372
                    ctxt.setDescription(new String[]{"Cancelar"});
323 373
                    ctxt.addPoint(pointX, pointY);
324 374
                }
325 375
                finally
......
445 495
                try
446 496
                {
447 497
                    ctxt.setQuestion("Insertar segundo punto");
498
                    ctxt.setDescription(new String[]{"Cancelar"});
448 499
                    ctxt.addPoint(pointX, pointY);
449 500
                }
450 501
                finally

Also available in: Unified diff