Revision 4337

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.app/org.gvsig.vectorediting.app.mainplugin/src/main/java/org/gvsig/vectorediting/app/mainplugin/EditingExtension.java
28 28
import java.io.File;
29 29
import java.util.ArrayList;
30 30
import java.util.Collections;
31
import java.util.HashSet;
31 32
import java.util.List;
33
import java.util.Set;
32 34
import java.util.function.Predicate;
33 35
import javax.swing.AbstractAction;
34 36
import javax.swing.Action;
......
53 55
import org.gvsig.andami.plugins.status.UnsavedData;
54 56
import org.gvsig.app.ApplicationLocator;
55 57
import org.gvsig.app.ApplicationManager;
58
import org.gvsig.app.extension.evalexpression.EvaluateExpressionExtension;
59
import org.gvsig.app.extension.evalexpression.EvaluateExpressionPanel;
60
import org.gvsig.app.extension.evalexpression.notifierfactory.AbstractUpdaterFactory;
61
import org.gvsig.app.extension.evalexpression.notifierfactory.UpdaterFactory;
56 62
import org.gvsig.app.project.Project;
57 63
import org.gvsig.app.project.documents.Document;
58 64
import org.gvsig.app.project.documents.view.ViewDocument;
......
107 113
public class EditingExtension extends Extension implements Observer {
108 114

  
109 115
    private static final Logger LOGGER = LoggerFactory.getLogger(EditingExtension.class);
116
    
117
    private VectorEditingUpdaterFactory vectorEditingUpdaterFactory;
110 118

  
111 119
    @Override
112 120
    public void execute(String actionCommand) {
......
238 246
                "TOC popup menu to end vector layer's editing",
239 247
                new EndEditingTocMenuEntry());
240 248
        EditingToolOptionsPanel.registerPersistence();
249
        
250
        this.vectorEditingUpdaterFactory = new VectorEditingUpdaterFactory();
251
        EvaluateExpressionPanel.registerUpdater(this.vectorEditingUpdaterFactory);
241 252
    }
242 253

  
243 254
    private void registerIcons() {
......
448 459
                }
449 460
                appManager.refreshMenusAndToolBars();
450 461
            }
462
            this.vectorEditingUpdaterFactory.updateAll(n);
451 463
        }
452 464
    }
453 465

  
......
641 653
        }
642 654
        
643 655
    }
656

  
657

  
658
    private static class VectorEditingUpdaterFactory extends AbstractUpdaterFactory {
659

  
660
        private final Set<VectorEditingUpdater> vectorEditingUpdaters = new HashSet<>();
661

  
662
        private class VectorEditingUpdater extends AbstractUpdaterFactory.AbstractUpdater {
663

  
664
            @SuppressWarnings("Convert2Lambda")
665
            public VectorEditingUpdater(UpdaterFactory factory, Observer observer) {
666
                super(factory, observer);
667
            }
668

  
669
            @Override
670
            public void add() {
671
                vectorEditingUpdaters.add(this);
672
            }
673

  
674
            @Override
675
            public void remove() {
676
                vectorEditingUpdaters.remove(this);
677
            }
678

  
679
        }
680

  
681
        public VectorEditingUpdaterFactory() {
682
            super("VectorEditing", "Actualizar cuando cambie la edicion vectorial");
683
        }
684

  
685
        @Override
686
        public UpdaterFactory.Updater create(Observer observer) {
687
            UpdaterFactory.Updater updater = new VectorEditingUpdater(this, observer);
688
            return updater;
689
        }
690

  
691
        public void updateAll(Notification n) {
692
            for (VectorEditingUpdater vectorEditingUpdater : vectorEditingUpdaters) {
693
                vectorEditingUpdater.update(n);
694
            }        
695
        }
696
    }
697

  
698

  
644 699
    
645 700
}

Also available in: Unified diff