Revision 2870

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
128 128
    @Override
129 129
    public void start() throws StartServiceException, InvalidEntryException {
130 130
        this.getProvider().start();
131
        this.getProvider().initDefaultValues();
131 132
        this.updateObservers(START_NOTIFICATION, null, null);
132 133
    }
133 134

  
......
224 225
    public void setShowPreviewSymbol(boolean showPreviewSymbol) {
225 226
        getProvider().setShowPreviewSymbol(showPreviewSymbol);
226 227
    }
228
    
229
    @Override
230
    public void restart() throws StartServiceException, InvalidEntryException ,StopServiceException {
231
        this.getProvider().restart();
232
        this.updateObservers(RESTART_NOTIFICATION, null, null);
233
    }
234

  
227 235
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.duplicate/src/main/java/org/gvsig/vectorediting/lib/prov/duplicate/MeasureEditingProvider.java
194 194
                        i18nManager.getTranslation("delete_original_geometries"),
195 195
                        consoleMsg,
196 196
                        deleteOriginalGeometriesOptions2,
197
                        i18nManager.getTranslation("_no"),
197
                        false,
198 198
                        TYPE.OPTION).setDataType(DataTypes.BOOLEAN);;
199 199

  
200 200
    }
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.api/src/main/java/org/gvsig/vectorediting/lib/api/EditingServiceParameterOptions.java
29 29
    
30 30
    public String getLabel(Object value);
31 31

  
32
    public String getConsoleValue(Object value);
33

  
32 34
    public interface ParameterOption extends LabeledValue {
33 35
        
34 36
        public String getConsoleValue();
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
57 57
    public static final String FINISH_AND_STORE_NOTIFICATION = "EditingService.FinishAndStore";
58 58
    public static final String FINISH_NOTIFICATION = "EditingService.Finish";
59 59
    public static final String START_NOTIFICATION = "EditingService.Start";
60
    public static final String RESTART_NOTIFICATION = "EditingService.Restart";
60 61

  
61 62
    /**
62 63
     * Gets state of drawing. If this service has sufficient values with mouse
......
201 202
    
202 203
    public void setShowPreviewSymbol(boolean showPreviewSymbol);
203 204
    
205
    public void restart() throws StartServiceException, InvalidEntryException ,StopServiceException;
206

  
207
    
204 208
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.api/src/main/java/org/gvsig/vectorediting/lib/api/EditingServiceParameter.java
107 107
     */
108 108
    public void setDefaultValue(Object value);
109 109

  
110
    public String getConsoleDefaultValue();
110 111

  
111 112
    /**
112 113
     * If parameter is of type Geometry returns the type of geometry
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.spi/src/main/java/org/gvsig/vectorediting/lib/spi/DefaultEditingServiceParameterOptions.java
68 68
                    return option.getValue();
69 69
                }
70 70
            }
71
            for (ParameterOption option : this.options) {
72
                if(StringUtils.startsWithIgnoreCase(option.getConsoleValue(), s)){
73
                    return option.getValue();
71
            if(StringUtils.isNotBlank(s)){
72
                for (ParameterOption option : this.options) {
73
                    if(StringUtils.startsWithIgnoreCase(option.getConsoleValue(), s)){
74
                        return option.getValue();
75
                    }
74 76
                }
75 77
            }
76 78
            if(isValidValue(defaultValue)){
......
107 109
        }
108 110
        return null;
109 111
    }
112

  
113
    @Override
114
    public String getConsoleValue(Object value) {
115
        for (ParameterOption option : this.options) {
116
            if(ObjectUtils.equals(option.getValue(), value)) {
117
                return option.getConsoleValue();
118
            }
119
        }
120
        return "";
121
    }
110 122
    
111 123
    
112 124
    public static class DefaultParameterOption<T> implements ParameterOption, Comparable{
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.spi/src/main/java/org/gvsig/vectorediting/lib/spi/DefaultEditingServiceParameter.java
28 28
import java.util.Arrays;
29 29
import java.util.HashSet;
30 30
import java.util.Map;
31
import java.util.Objects;
31 32
import java.util.Set;
32 33
import org.gvsig.fmap.geom.Geometry;
34
import org.gvsig.fmap.geom.primitive.Point;
33 35
import org.gvsig.timesupport.DataTypes;
34 36
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
35 37

  
......
213 215
    public void setDefaultValue(Object value) {
214 216
        this.defaultValue = value;
215 217
    }
218
    
219
    public String getConsoleDefaultValue() {
220
        if(this.defaultValue == null) {
221
            return "";
222
        }
223
        if (defaultValue instanceof Point) {
224
            Point point = (Point) defaultValue;
225
            StringBuilder builder = new StringBuilder();
226
            for (int i = 0; i < point.getDimension(); i++) {
227
                builder.append(point.getCoordinateAt(i));
228
                if (i < point.getDimension() - 1) {
229
                    builder.append(" , ");
230
                }
231
            }
232
            return builder.toString();
233
        }
216 234

  
235
        if (this.options2 != null) {
236
            return this.options2.getConsoleValue(this.defaultValue);
237
        }
238
        if (this.options != null) {
239
            //FIXME: ????
240
            return this.options.getOrDefault(defaultValue, "");
241
        }
242
        return Objects.toString(defaultValue, "");
243
    }
244

  
217 245
    @Override
218 246
    public boolean isOptional() {
219 247
        return optional;
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
191 191
    public void setShowPreviewSymbol(boolean showPreviewSymbol);
192 192
    
193 193
    public boolean isShowPreviewSymbol();
194
    
195
    /**
196
     * Restarts provider.
197
     *
198
     * @throws StartServiceException
199
     *             if there are some error starting service.
200
     * @throws InvalidEntryException
201
     *             if the entry of provider is not valid 
202
     */
203
    public void restart() throws StartServiceException, InvalidEntryException, StopServiceException;
194 204

  
205
    public void initDefaultValues();
206

  
195 207
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.spi/src/main/java/org/gvsig/vectorediting/lib/spi/AbstractEditingProvider.java
24 24

  
25 25
package org.gvsig.vectorediting.lib.spi;
26 26

  
27
import java.util.List;
27 28
import org.gvsig.fmap.dal.feature.EditableFeature;
28 29
import org.gvsig.fmap.dal.feature.Feature;
29 30
import org.gvsig.fmap.geom.Geometry;
......
32 33
import org.gvsig.tools.service.spi.ProviderServices;
33 34
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
34 35
import org.gvsig.vectorediting.lib.api.exceptions.InvalidEntryException;
36
import org.gvsig.vectorediting.lib.api.exceptions.StartServiceException;
37
import org.gvsig.vectorediting.lib.api.exceptions.StopServiceException;
35 38
import org.slf4j.Logger;
36 39
import org.slf4j.LoggerFactory;
37 40

  
38 41
public abstract class AbstractEditingProvider extends AbstractProvider
39 42
implements EditingProvider, Geometry.TYPES, Geometry.SUBTYPES {
40 43
    
41
    private static final Logger LOGGER = LoggerFactory
44
    protected static final Logger LOGGER = LoggerFactory
42 45
        .getLogger(AbstractEditingProvider.class);
43 46
    
44 47
    private boolean showPreviewSymbol;
......
135 138
//        }
136 139
//    }
137 140

  
141
    @Override
142
    public void restart() throws StartServiceException, InvalidEntryException ,StopServiceException {
143
        this.stop();
144
        this.start();
145
    }
138 146

  
147
    @Override
148
    public void initDefaultValues() {
149
        List<EditingServiceParameter> parameters = this.getParameters();
150
        for (EditingServiceParameter parameter : parameters) {
151
            if(parameter.isOptional()){
152
                try {
153
                    setValue(parameter, parameter.getDefaultValue());
154
                } catch (InvalidEntryException ex) {
155
                    LOGGER.debug("Can't init default value of "+parameter.getName(), ex);
156
                }
157
            }
158
        }
159
    }
139 160

  
161

  
162

  
140 163
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.swing/org.gvsig.vectorediting.swing.impl/src/main/java/org/gvsig/vectorediting/swing/impl/DefaultEditingContext.java
496 496
        String activeServiceName =
497 497
            i18nManager.getTranslation(getActiveService().getName());
498 498

  
499
        Object defaultValue = param.getDefaultValue();
500
        String strDefaultValue;
501

  
502
        if (defaultValue != null) {
503
            if (defaultValue instanceof String) {
504
                strDefaultValue =
505
                    i18nManager.getTranslation((String) defaultValue);
506
            } else {
507
                if(defaultValue instanceof Point){
508
                    Point point = (Point)defaultValue;
509
                    StringBuilder builder = new StringBuilder();
510
                    for(int i=0; i<point.getDimension(); i++){
511
                        builder.append(point.getCoordinateAt(i));
512
                        if(i < point.getDimension()-1){
513
                            builder.append(" , ");
514
                        }
515
                    }
516
                    strDefaultValue = builder.toString();
517
                } else {
518
                    strDefaultValue = defaultValue.toString();
519
                }
520
            }
521
            showConsoleMessage("\n" + activeServiceName + "# " + translation
522
                + "<" + strDefaultValue + "> : ");
499
        String strDefaultValue = param.getConsoleDefaultValue();
500
        
501
        if(StringUtils.isBlank(strDefaultValue)) {
502
            showConsoleMessage("\n" + activeServiceName + "# " + translation + " : ");
523 503
        } else {
524
            showConsoleMessage("\n" + activeServiceName + "# " + translation
525
                + " : ");
504
            showConsoleMessage("\n" + activeServiceName + "# " + translation + "<" + strDefaultValue + "> : ");
526 505
        }
527 506
    }
528 507

  
......
810 789
                showConsoleMessage("\n"
811 790
                    + i18nManager.getTranslation(lastService.getName()) + "# "
812 791
                    + i18nManager.getTranslation("finished") + "\n");
813
                lastService.stop();
792
//                lastService.stop();
814 793
                setActiveService(lastService);
815
                lastService.start();
794
//                lastService.start();
795
                lastService.restart();
816 796
                changeSelectedTool(getActiveService().getName());
817 797
            }
818 798

  

Also available in: Unified diff