001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.plugins.streetside.history.commands; 003 004import static org.openstreetmap.josm.tools.I18n.tr; 005 006import java.util.List; 007import java.util.concurrent.ConcurrentSkipListSet; 008 009import org.openstreetmap.josm.plugins.streetside.StreetsideAbstractImage; 010import org.openstreetmap.josm.plugins.streetside.utils.StreetsideUtils; 011 012/** 013 * Command joined when joining two images into the same sequence. 014 * 015 * @author nokutu 016 * 017 */ 018public class CommandUnjoin extends StreetsideExecutableCommand { 019 020 private final StreetsideAbstractImage a; 021 private final StreetsideAbstractImage b; 022 023 /** 024 * Main constructor. 025 * 026 * @param images 027 * The two images that are going to be unjoined. Must be of exactly 028 * size 2. 029 * @throws IllegalArgumentException 030 * if the List size is different from 2. 031 */ 032 public CommandUnjoin(List<StreetsideAbstractImage> images) { 033 super(new ConcurrentSkipListSet<>(images)); 034 a = images.get(0); 035 b = images.get(1); 036 if (images.size() != 2) 037 throw new IllegalArgumentException(); 038 } 039 040 @Override 041 public void execute() { 042 this.redo(); 043 } 044 045 @Override 046 public void undo() { 047 StreetsideUtils.join(a, b); 048 } 049 050 @Override 051 public void redo() { 052 StreetsideUtils.unjoin(a, b); 053 } 054 055 @Override 056 public void sum(StreetsideCommand command) { 057 } 058 059 @Override 060 public String toString() { 061 // TODO: tr( RRH 062 return tr("2 images unjoined"); 063 } 064}