// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.JunctionChecker;
import java.util.HashSet;
import javax.swing.JOptionPane;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.plugins.JunctionChecker.datastructure.Channel;
/**
* prüft due Vorbedinungen des JunctionCheck oder Suche und übergibt die Parameter den Junction-Check-Klassen
* @author joerg
*/
public class PrepareJunctionCheckorSearch {
private final JunctionCheckerPlugin plugin;
private final int n;
private HashSet<Channel> subset;
private JunctionCheckTask jct;
private final boolean produceRelation;
public PrepareJunctionCheckorSearch(JunctionCheckerPlugin plugin, int n, boolean producerelation) {
this.plugin = plugin;
this.n = n;
this.subset = new HashSet<>();
this.produceRelation = producerelation;
}
protected void prepareJunctionCheck() {
if (prepareSubset()) {
jct = new JunctionCheckTask(plugin, n, subset, produceRelation);
Main.worker.submit(jct);
}
}
protected void prepareJunctionSearch() {
if (prepareSubset()) {
JunctionSearchTask jst = new JunctionSearchTask(plugin, n, subset, produceRelation);
Main.worker.submit(jst);
}
}
private boolean prepareSubset() {
if (plugin.getChannelDigraph().getSelectedChannels().size() < 6) {
JOptionPane.showMessageDialog(Main.parent, "Less then 6 channels are selected");
return false;
}
subset = plugin.getChannelDigraph().getSelectedChannels();
return true;
}
}