Statistics
| Revision:

root / trunk / libraries / libTopology / src / com / vividsolutions / jcs / plugin / conflate / roads / RetireSegmentTool.java @ 22873

History | View | Annotate | Download (3.05 KB)

1
package com.vividsolutions.jcs.plugin.conflate.roads;
2

    
3
import java.awt.Color;
4
import java.awt.geom.NoninvertibleTransformException;
5
import java.util.Collection;
6
import java.util.Iterator;
7
import java.util.Map;
8

    
9
import com.vividsolutions.jcs.conflate.roads.model.SourceState;
10
import com.vividsolutions.jcs.conflate.roads.model.SourceFeature;
11
import com.vividsolutions.jcs.jump.FUTURE_PreventableConfirmationDialog;
12
import com.vividsolutions.jump.workbench.WorkbenchContext;
13
import com.vividsolutions.jump.workbench.model.Layer;
14

    
15
public class RetireSegmentTool extends SetUnmatchedStateTool {
16

    
17
    public RetireSegmentTool(boolean layer0, boolean layer1,
18
            String cursorImage, String buttonImage, Color color,
19
            WorkbenchContext context) {
20
        super(SourceState.RETIRED, layer0, layer1, cursorImage, buttonImage,
21
                color, context, GestureMode.LINE);
22
    }
23

    
24
    protected Map layerToSpecifiedFeaturesMap()
25
            throws NoninvertibleTransformException {
26
        Boolean retiringCommittedFeatures = null;
27
        Map layerToSpecifiedFeaturesMap = super.layerToSpecifiedFeaturesMap();
28
        for (Iterator i = layerToSpecifiedFeaturesMap.keySet().iterator(); i
29
                .hasNext();) {
30
            Layer layer = (Layer) i.next();
31
            Collection features = (Collection) layerToSpecifiedFeaturesMap
32
                    .get(layer);
33
            for (Iterator j = features.iterator(); j.hasNext();) {
34
                SourceFeature feature = (SourceFeature) j.next();
35
                if (feature.getRoadSegment().getState().indicates(
36
                        SourceState.COMMITTED)) {
37
                    if (retiringCommittedFeatures == null) {
38
                        retiringCommittedFeatures = Boolean
39
                                .valueOf(FUTURE_PreventableConfirmationDialog
40
                                        .show(
41
                                                getContext().getWorkbench()
42
                                                        .getFrame(),
43
                                                "RoadMatcher",
44
                                                ErrorMessages.retireRoadSegmentTool_committed_statusLineWarning,
45
                                                ErrorMessages.retireRoadSegmentTool_committed_dialogText,
46
                                                "Retire them",
47
                                                "Skip them",
48
                                                getClass().getName()
49
                                                        + " - DO NOT SHOW AGAIN"));
50
                    }
51
                    if (!retiringCommittedFeatures.booleanValue()) {
52
                        j.remove();
53
                    }
54
                } else if (feature.getRoadSegment().getState() == SourceState.RETIRED) {
55
                    j.remove();
56
                    noRoadSegmentsWarning = ErrorMessages.retireRoadSegmentTool_alreadyRetired;
57
                }
58
            }
59
            if (features.isEmpty()) {
60
                i.remove();
61
            }
62
        }
63
        return layerToSpecifiedFeaturesMap;
64
    }
65

    
66
}