Revision 62

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingService.java
15 15
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
16 16
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException;
17 17
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException;
18
import org.gvsig.vectorediting.lib.api.exceptions.InvalidOptionException;
19
import org.gvsig.vectorediting.lib.api.exceptions.InvalidValueException;
18
import org.gvsig.vectorediting.lib.api.exceptions.InvalidEntryException;
20 19
import org.gvsig.vectorediting.lib.spi.EditingProvider;
21 20

  
22 21
public class DefaultEditingService implements EditingService {
......
43 42
    return provider.next();
44 43
  }
45 44

  
46
  public void value(Object value) throws InvalidValueException, InvalidOptionException{
45
  public void value(Object value) throws InvalidEntryException{
47 46
    provider.value(value);
48 47
  }
49 48

  
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.circlecr/src/main/java/org/gvsig/vectorediting/lib/prov/circlecr/CircleCREditingProvider.java
28 28
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
29 29
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException;
30 30
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException;
31
import org.gvsig.vectorediting.lib.api.exceptions.InvalidOptionException;
32
import org.gvsig.vectorediting.lib.api.exceptions.InvalidValueException;
31
import org.gvsig.vectorediting.lib.api.exceptions.InvalidEntryException;
33 32
import org.gvsig.vectorediting.lib.spi.AbstractEditingProvider;
34 33
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
35 34
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter;
......
107 106
  }
108 107

  
109 108
  private void validateAndInsertValue(EditingServiceParameter param,
110
                                      Object value) throws InvalidValueException {
109
                                      Object value) throws InvalidEntryException {
111 110
    if (param == center) {
112 111
      if (value instanceof Point) {
113 112
        values.put(param, value);
......
121 120
          radiusValue = ((Point) value).distance((Point) values.get(center));
122 121
        }
123 122
        catch (Exception e) {
124
          throw new InvalidValueException(e);
123
          throw new InvalidEntryException(e);
125 124
        }
126 125
        if (radiusValue != null) {
127 126
          values.put(param, radiusValue);
......
145 144
    return list;
146 145
  }
147 146

  
148
  public void value(Object value) throws InvalidValueException, InvalidOptionException{
147
  public void value(Object value) throws InvalidEntryException{
149 148
    EditingServiceParameter param = next();
150 149
    validateAndInsertValue(param, value);
151 150
  }
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.polyline/src/main/java/org/gvsig/vectorediting/lib/prov/polyline/PolylineEditingProvider.java
32 32
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
33 33
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException;
34 34
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException;
35
import org.gvsig.vectorediting.lib.api.exceptions.InvalidOptionException;
36
import org.gvsig.vectorediting.lib.api.exceptions.InvalidValueException;
35
import org.gvsig.vectorediting.lib.api.exceptions.InvalidEntryException;
37 36
import org.gvsig.vectorediting.lib.api.exceptions.VectorEditingException;
38 37
import org.gvsig.vectorediting.lib.spi.AbstractEditingProvider;
39 38
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
......
580 579
   * @param value
581 580
   */
582 581
  private void validateAndInsertValue(EditingServiceParameter param,
583
                                      Object value) throws InvalidValueException, InvalidOptionException {
582
                                      Object value) throws InvalidEntryException {
584 583
    if (value instanceof String) {
585 584
      if (values.size() >= 2) {
586 585
        if(((String) value).equalsIgnoreCase("A") || ((String) value).equalsIgnoreCase("L")){
......
595 594
            return;
596 595
          }
597 596
        } else{
598
          throw new InvalidOptionException(null);
597
          throw new InvalidEntryException(null);
599 598
        }
600 599
        
600
      } else{
601
          throw new InvalidEntryException(null);
601 602
      }
602 603
    }
603 604
    else if (param == points && value instanceof Point) {
......
605 606
    }
606 607
  }
607 608

  
608
  public void value(Object value) throws InvalidValueException, InvalidOptionException{
609
  public void value(Object value) throws InvalidEntryException{
609 610
    EditingServiceParameter param = next();
610 611
    validateAndInsertValue(param, value);
611 612
  }
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.insertpoint/src/main/java/org/gvsig/vectorediting/lib/prov/insertpoint/InsertPointEditingProvider.java
17 17
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
18 18
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException;
19 19
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException;
20
import org.gvsig.vectorediting.lib.api.exceptions.InvalidOptionException;
21
import org.gvsig.vectorediting.lib.api.exceptions.InvalidValueException;
20
import org.gvsig.vectorediting.lib.api.exceptions.InvalidEntryException;
22 21
import org.gvsig.vectorediting.lib.spi.AbstractEditingProvider;
23 22
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
24 23
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter;
......
76 75
    return list;
77 76
  }
78 77

  
79
  public void value(Object value) throws InvalidValueException, InvalidOptionException  {
78
  public void value(Object value) throws InvalidEntryException {
80 79
    EditingServiceParameter param = next();
81 80
    if (isValidValue(param, value)) {
82 81
      this.valuePoint = (Point) value;
83 82
    }
84 83
    else{
85
      throw new InvalidValueException(null);
84
      throw new InvalidEntryException(null);
86 85
    }
87 86
  }
88 87

  
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.api/src/main/java/org/gvsig/vectorediting/lib/api/exceptions/InvalidOptionException.java
1
/*
2
 * Copyright 2014 DiSiD Technologies S.L.L. All rights reserved.
3
 * 
4
 * Project  : DiSiD org.gvsig.vectorediting.lib.api 
5
 * SVN Id   : $Id$
6
 */
7
package org.gvsig.vectorediting.lib.api.exceptions;
8

  
9

  
10
public class InvalidOptionException extends EditingServiceException {
11

  
12
  private static final long serialVersionUID = 2515764199505996338L;
13

  
14
  private static final String MESSAGE =
15
      "An error has been produced validating option inserted. Please, check accpeted options";
16
  
17
  private static final String KEY = "_InvalidOptionException";
18
  
19
  
20
  public InvalidOptionException(Throwable ex) {
21
    super(MESSAGE, ex, KEY, serialVersionUID);
22
  }
23
  
24
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.api/src/main/java/org/gvsig/vectorediting/lib/api/exceptions/InvalidValueException.java
1
/*
2
 * Copyright 2014 DiSiD Technologies S.L.L. All rights reserved.
3
 * 
4
 * Project  : DiSiD org.gvsig.vectorediting.lib.api 
5
 * SVN Id   : $Id$
6
 */
7
package org.gvsig.vectorediting.lib.api.exceptions;
8

  
9

  
10
public class InvalidValueException extends EditingServiceException {
11

  
12
  private static final long serialVersionUID = 2515764199505996338L;
13
  
14
  private static final String MESSAGE =
15
      "An error has been produced validating value inserted. Please, check value format";
16
  
17
  private static final String KEY = "_InvalidValueException";
18
  
19
  
20
  public InvalidValueException(Throwable ex) {
21
    super(MESSAGE, ex, KEY, serialVersionUID);
22
  }
23

  
24
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.api/src/main/java/org/gvsig/vectorediting/lib/api/exceptions/InvalidEntryException.java
1
/*
2
 * Copyright 2014 DiSiD Technologies S.L.L. All rights reserved.
3
 * 
4
 * Project  : DiSiD org.gvsig.vectorediting.lib.api 
5
 * SVN Id   : $Id$
6
 */
7
package org.gvsig.vectorediting.lib.api.exceptions;
8

  
9

  
10
public class InvalidEntryException extends EditingServiceException {
11

  
12
  private static final long serialVersionUID = 2515764199505996338L;
13
  
14
  private static final String MESSAGE =
15
      "An error has been produced validating entry inserted. Please, check entry format or possible entries";
16
  
17
  private static final String KEY = "_InvalidValueException";
18
  
19
  
20
  public InvalidEntryException(Throwable ex) {
21
    super(MESSAGE, ex, KEY, serialVersionUID);
22
  }
23

  
24
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.api/src/main/java/org/gvsig/vectorediting/lib/api/EditingService.java
9 9
import java.util.List;
10 10

  
11 11
import org.gvsig.fmap.dal.exception.DataException;
12
import org.gvsig.fmap.dal.feature.exception.FinishEditingException;
13 12
import org.gvsig.fmap.geom.primitive.Point;
14 13
import org.gvsig.tools.exception.BaseException;
15 14
import org.gvsig.tools.service.Service;
16 15
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException;
17 16
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException;
18
import org.gvsig.vectorediting.lib.api.exceptions.InvalidOptionException;
19
import org.gvsig.vectorediting.lib.api.exceptions.InvalidValueException;
20
import org.gvsig.vectorediting.lib.api.exceptions.VectorEditingException;
17
import org.gvsig.vectorediting.lib.api.exceptions.InvalidEntryException;
21 18

  
22 19
public interface EditingService extends Service {
23 20

  
......
46 43
   * @param name
47 44
   * @param value
48 45
   */
49
  public void value(Object value) throws InvalidValueException, InvalidOptionException;
46
  public void value(Object value) throws InvalidEntryException;
50 47

  
51 48
  /**
52 49
   *
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.spi/src/main/java/org/gvsig/vectorediting/lib/spi/EditingProvider.java
19 19
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
20 20
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException;
21 21
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException;
22
import org.gvsig.vectorediting.lib.api.exceptions.InvalidOptionException;
23
import org.gvsig.vectorediting.lib.api.exceptions.InvalidValueException;
22
import org.gvsig.vectorediting.lib.api.exceptions.InvalidEntryException;
24 23

  
25 24
public interface EditingProvider extends Provider {
26 25

  
......
51 50
   * @param param
52 51
   * @param value
53 52
   */
54
  public void value(Object value) throws InvalidValueException, InvalidOptionException;
53
  public void value(Object value) throws InvalidEntryException;
55 54

  
56 55
  /**
57 56
   * @throws CreateGeometryException
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.swing/org.gvsig.vectorediting.swing.impl/src/main/java/org/gvsig/vectorediting/swing/impl/DefaultEditingBehavior.java
21 21
import org.cresques.cts.IProjection;
22 22
import org.gvsig.andami.PluginServices;
23 23
import org.gvsig.andami.ui.mdiFrame.MainFrame;
24
import org.gvsig.app.extension.CheckSOAndArquitectureExtension.ShowMessageControler;
24 25
import org.gvsig.app.project.documents.view.toolListeners.StatusBarListener;
25 26
import org.gvsig.fmap.geom.Geometry;
26 27
import org.gvsig.fmap.geom.primitive.Point;
......
51 52
import org.gvsig.vectorediting.lib.api.EditingService;
52 53
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
53 54
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
54
import org.gvsig.vectorediting.lib.api.exceptions.InvalidOptionException;
55
import org.gvsig.vectorediting.lib.api.exceptions.InvalidValueException;
55
import org.gvsig.vectorediting.lib.api.exceptions.InvalidEntryException;
56 56
import org.gvsig.vectorediting.lib.api.exceptions.ParsePointException;
57 57
import org.gvsig.vectorediting.lib.api.exceptions.ParseValueException;
58 58
import org.gvsig.vectorediting.lib.api.exceptions.VectorEditingException;
......
163 163
    addConsoleListener("ViewEditing", new ResponseListener() {
164 164

  
165 165
      public void acceptResponse(String response) {
166
        textEntered(response);
166
        try{
167
          textEntered(response);
168
        } catch( VectorEditingException e){
169
          showConsoleMessage(e.getMessage());
170
        } finally{
171
          getNextParameter();
172
        }
167 173
      }
168 174
    });
169 175

  
......
414 420

  
415 421
  }
416 422

  
417
  private void textEntered(String response) {
423
  private void textEntered(String response) throws InvalidEntryException{
418 424
    if (response == null) {
419 425
      this.activeService.stop();
420 426
      cleanBehavior();
......
423 429
      List<TYPE> types = currentParam.getTypes();
424 430
      Point point = null;
425 431
      Double value = null;
426
      try {
427
        if (types.contains(TYPE.OPTION)) {
428
          response = response.replace("\n", "");
429
          if (response != null) {
430
            this.activeService.value(response);
432

  
433
      boolean insertedValue = false;
434
      if (!insertedValue && types.contains(TYPE.POSITION)
435
          || types.contains(TYPE.LIST_POSITIONS)) {
436
        try {
437
          point = parsePoint(response);
438
          if (point != null) {
439
            this.activeService.value(point);
440
            insertedValue = true;
431 441
          }
432 442
        }
433
        else if (types.contains(TYPE.VALUE)) {
443
        catch (VectorEditingException e) {
444
          // Do nothing
445
        }
446
      }
447
      if (!insertedValue && types.contains(TYPE.VALUE)) {
448
        try {
434 449
          value = parseValue(response);
435 450
          if (value != null) {
436 451
            this.activeService.value(value);
452
            insertedValue = true;
437 453
          }
438 454
        }
439
        else if (types.contains(TYPE.POSITION)
440
            || types.contains(TYPE.LIST_POSITIONS)) {
441
          point = parsePoint(response);
442
          if (point != null) {
443
            this.activeService.value(point);
455
        catch (VectorEditingException e) {
456
          // Do nothing
457
        }
458

  
459
      }
460
      if (!insertedValue && types.contains(TYPE.OPTION)) {
461
        try {
462
          response = response.replace("\n", "");
463
          if (response != null) {
464
            this.activeService.value(response);
465
            insertedValue = true;
444 466
          }
445 467
        }
468
        catch (VectorEditingException e) {
469
          // Do nothing
470
        }
446 471
      }
447
      catch (VectorEditingException e) {
448
        showConsoleMessage(e.getMessage());
472
      // TODO: contemplar el resto de casos
473
      // TYPE.OPTION,
474
      // TYPE.SELECTION,
475
      // TYPE.GEOMETRY
476
      if (!insertedValue) {
477
        throw new InvalidEntryException(null);
449 478
      }
450
      finally {
451
        getNextParameter();
452
      }
453
      // TODO: contemplar el resto de casos TYPE.SELECTION, TYPE.GEOMETRY
454

  
455
      // if (!insertedValue) {
456
      // // TODO Show console message
457
      // }
458

  
459 479
    }
460 480
  }
461 481

  
482
   
483

  
462 484
  private Double parseValue(String response) throws ParseValueException {
463
    try{
485
    try {
464 486
      return Double.valueOf(response);
465
    } catch( Exception e){
487
    }
488
    catch (Exception e) {
466 489
      throw new ParseValueException(e);
467 490
    }
468
    
491

  
469 492
  }
470 493

  
471 494
  private Point parsePoint(String response) throws ParsePointException {

Also available in: Unified diff