diff --git a/client/src/main/java/com/mirth/connect/client/ui/ChannelCloneDialog.java b/client/src/main/java/com/mirth/connect/client/ui/ChannelCloneDialog.java new file mode 100644 index 0000000000..1a1bdbcecb --- /dev/null +++ b/client/src/main/java/com/mirth/connect/client/ui/ChannelCloneDialog.java @@ -0,0 +1,286 @@ +/* + * Copyright (c) Mirth Corporation. All rights reserved. + * + * The software in this package is published under the terms of the MPL license. + */ + +package com.mirth.connect.client.ui; + +import java.awt.Dimension; +import java.awt.Window; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import javax.swing.DefaultComboBoxModel; +import javax.swing.DefaultListModel; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextField; +import javax.swing.ListSelectionModel; + +import com.mirth.connect.model.Channel; +import com.mirth.connect.model.ChannelDependency; +import com.mirth.connect.model.ChannelGroup; +import com.mirth.connect.model.ChannelTag; + +import net.miginfocom.swing.MigLayout; +import org.apache.commons.lang3.StringUtils; + +/** Dialog for selecting which channel associations should be copied during a clone. */ +public class ChannelCloneDialog extends MirthDialog { + + public interface ChannelNameValidator { + boolean isValid(String name); + } + + public static class Option { + private final String id; + private final String name; + + public Option(String id, String name) { + this.id = id; + this.name = name; + } + + public String getId() { + return id; + } + + @Override + public String toString() { + return name == null ? id : name; + } + } + + private final List