// Path: src/main/java/org/chesmapper/view/cluster/Clustering.java
// public interface Clustering extends CompoundGroupWithProperties
// {
// 	void addListener(PropertyChangeListener propertyChangeListener);
// 
// 	int getNumClusters();
// 
// 	int numClusters();
// 
// 	List<Cluster> getClusters();
// 
// 	boolean isClusterActive();
// 
// 	boolean isClusterWatched();
// 
// 	Cluster getCluster(int i);
// 
// 	int indexOf(Cluster cluster);
// 
// 	Cluster getActiveCluster();
// 
// 	Cluster getWatchedCluster();
// 
// 	int getActiveClusterIdx();
// 
// 	int getWatchedClusterIdx();
// 
// 	boolean isCompoundActive();
// 
// 	boolean isCompoundWatched();
// 
// 	boolean isCompoundActive(Compound c);
// 
// 	Compound[] getActiveCompounds();
// 
// 	Compound getActiveCompound();
// 
// 	int[] getActiveCompoundsJmolIdx();
// 
// 	Compound getWatchedCompound();
// 
// 	Compound[] getWatchedCompounds();
// 
// 	int[] getWatchedCompoundsJmolIdx();
// 
// 	Cluster getClusterForCompound(Compound c);
// 
// 	List<CompoundProperty> selectPropertiesAndFeaturesWithDialog(String title, CompoundProperty preselected,
// 			boolean addSmiles, boolean addEmbeddingStress, boolean addActivityCliffs, boolean addDistanceTo);
// 
// 	List<CompoundProperty> getPropertiesAndFeatures();
// 
// 	List<CompoundProperty> getProperties();
// 
// 	List<CompoundProperty> getFeatures();
// 
// 	List<Compound> getCompounds(boolean includingMultiClusteredCompounds);
// 
// 	Cluster getUniqueClusterForCompounds(Compound[] c);
// 
// 	String getOrigLocalPath();
// 
// 	String getOrigSDFile();
// 
// 	String getSDFile();
// 
// 	boolean isClusterAlgorithmDisjoint();
// 
// 	String getClusterAlgorithm();
// 
// 	int getClusterIndexForCompound(Compound m);
// 
// 	List<CompoundData> getCompounds();
// 
// 	void chooseClustersToExport(CompoundProperty compoundDescriptor);
// 
// 	void chooseCompoundsToExport(CompoundProperty compoundDescriptor);
// 
// 	Double[] getDoubleValues(NumericProperty p);
// 
// 	String[] getStringValues(NominalProperty p, Compound m);
// 
// 	String getSummaryStringValue(CompoundProperty p, boolean b);
// 
// 	int numMissingValues(CompoundProperty p);
// 
// 	String getName();
// 
// 	Double getNormalizedLogDoubleValue(CompoundPropertyOwner m, NumericProperty p);
// 
// 	Double getNormalizedDoubleValue(CompoundPropertyOwner m, NumericProperty p);
// 
// 	double getSpecificity(Compound compound, CompoundProperty p);
// 
// 	double getSpecificity(Cluster cluster, CompoundProperty p);
// 
// 	double getSpecificity(CompoundSelection sel, CompoundProperty p);
// 
// 	int getNumCompounds(boolean includingMultiClusteredCompounds);
// 
// 	int getNumUnfilteredCompounds(boolean includingMultiClusteredCompounds);
// 
// 	String getEmbedAlgorithm();
// 
// 	String getEmbedQuality();
// 
// 	List<CompoundProperty> getAdditionalProperties();
// 
// 	CorrelationProperty getEmbeddingQualityProperty();
// 
// 	EqualPositionProperty getEqualPosProperty();
// 
// 	Compound getCompoundWithJmolIndex(int convertRowIndexToModel);
// 
// 	int numDistinctValues(CompoundProperty p);
// 
// 	public void addSelectionListener(SelectionListener l);
// 
// 	public abstract static class SelectionListener
// 	{
// 		public void clusterActiveChanged(Cluster c)
// 		{
// 		}
// 
// 		public void clusterWatchedChanged(Cluster c)
// 		{
// 		}
// 
// 		public void compoundActiveChanged(Compound c[])
// 		{
// 		}
// 
// 		public void compoundWatchedChanged(Compound c[])
// 		{
// 		}
// 	}
// 
// 	boolean isBMBFRealEndpointDataset(boolean b);
// 
// 	CompoundProperty addDistanceToCompoundFeature(Compound c);
// 
// 	CompoundProperty addSALIFeatures(CompoundProperty c);
// 
// 	void predict();
// 
// 	void addPredictionFeature(CompoundProperty clazz, PredictionResult p);
// 
// 	NumericProperty addLogFeature(NumericProperty p);
// 
// 	public CompoundSelection getCompoundSelection(Compound[] c);
// 
// 	boolean isRandomEmbedding();
// 
// 	CompoundProperty getHighlightProperty();
// 
// 	Color getHighlightColorText();
// 
// 	Double getFeatureDistance(int origIndex, int origIndex2);
// 
// 	boolean isSkippingRedundantFeatures();
// 
// 	boolean isBigDataMode();
// 
// 	void computeAppDomain();
// 
// 	boolean doCheSMappingWarningsExist();
// 
// 	void showCheSMappingWarnings();
// 
// }


import java.awt.BorderLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.border.EmptyBorder;
import org.chesmapper.map.main.Settings;
import org.chesmapper.view.cluster.Clustering;
import com.jgoodies.forms.factories.ButtonBarFactory;
package org.chesmapper.view.gui;





public class ColorEditor extends JDialog
{
	ViewControler viewControler;
	boolean okPressed = false;
	ColorEditorPanel panels[];

// Path: src/main/java/org/chesmapper/view/cluster/Clustering.java
// public interface Clustering extends CompoundGroupWithProperties
// {
// 	void addListener(PropertyChangeListener propertyChangeListener);
// 
// 	int getNumClusters();
// 
// 	int numClusters();
// 
// 	List<Cluster> getClusters();
// 
// 	boolean isClusterActive();
// 
// 	boolean isClusterWatched();
// 
// 	Cluster getCluster(int i);
// 
// 	int indexOf(Cluster cluster);
// 
// 	Cluster getActiveCluster();
// 
// 	Cluster getWatchedCluster();
// 
// 	int getActiveClusterIdx();
// 
// 	int getWatchedClusterIdx();
// 
// 	boolean isCompoundActive();
// 
// 	boolean isCompoundWatched();
// 
// 	boolean isCompoundActive(Compound c);
// 
// 	Compound[] getActiveCompounds();
// 
// 	Compound getActiveCompound();
// 
// 	int[] getActiveCompoundsJmolIdx();
// 
// 	Compound getWatchedCompound();
// 
// 	Compound[] getWatchedCompounds();
// 
// 	int[] getWatchedCompoundsJmolIdx();
// 
// 	Cluster getClusterForCompound(Compound c);
// 
// 	List<CompoundProperty> selectPropertiesAndFeaturesWithDialog(String title, CompoundProperty preselected,
// 			boolean addSmiles, boolean addEmbeddingStress, boolean addActivityCliffs, boolean addDistanceTo);
// 
// 	List<CompoundProperty> getPropertiesAndFeatures();
// 
// 	List<CompoundProperty> getProperties();
// 
// 	List<CompoundProperty> getFeatures();
// 
// 	List<Compound> getCompounds(boolean includingMultiClusteredCompounds);
// 
// 	Cluster getUniqueClusterForCompounds(Compound[] c);
// 
// 	String getOrigLocalPath();
// 
// 	String getOrigSDFile();
// 
// 	String getSDFile();
// 
// 	boolean isClusterAlgorithmDisjoint();
// 
// 	String getClusterAlgorithm();
// 
// 	int getClusterIndexForCompound(Compound m);
// 
// 	List<CompoundData> getCompounds();
// 
// 	void chooseClustersToExport(CompoundProperty compoundDescriptor);
// 
// 	void chooseCompoundsToExport(CompoundProperty compoundDescriptor);
// 
// 	Double[] getDoubleValues(NumericProperty p);
// 
// 	String[] getStringValues(NominalProperty p, Compound m);
// 
// 	String getSummaryStringValue(CompoundProperty p, boolean b);
// 
// 	int numMissingValues(CompoundProperty p);
// 
// 	String getName();
// 
// 	Double getNormalizedLogDoubleValue(CompoundPropertyOwner m, NumericProperty p);
// 
// 	Double getNormalizedDoubleValue(CompoundPropertyOwner m, NumericProperty p);
// 
// 	double getSpecificity(Compound compound, CompoundProperty p);
// 
// 	double getSpecificity(Cluster cluster, CompoundProperty p);
// 
// 	double getSpecificity(CompoundSelection sel, CompoundProperty p);
// 
// 	int getNumCompounds(boolean includingMultiClusteredCompounds);
// 
// 	int getNumUnfilteredCompounds(boolean includingMultiClusteredCompounds);
// 
// 	String getEmbedAlgorithm();
// 
// 	String getEmbedQuality();
// 
// 	List<CompoundProperty> getAdditionalProperties();
// 
// 	CorrelationProperty getEmbeddingQualityProperty();
// 
// 	EqualPositionProperty getEqualPosProperty();
// 
// 	Compound getCompoundWithJmolIndex(int convertRowIndexToModel);
// 
// 	int numDistinctValues(CompoundProperty p);
// 
// 	public void addSelectionListener(SelectionListener l);
// 
// 	public abstract static class SelectionListener
// 	{
// 		public void clusterActiveChanged(Cluster c)
// 		{
// 		}
// 
// 		public void clusterWatchedChanged(Cluster c)
// 		{
// 		}
// 
// 		public void compoundActiveChanged(Compound c[])
// 		{
// 		}
// 
// 		public void compoundWatchedChanged(Compound c[])
// 		{
// 		}
// 	}
// 
// 	boolean isBMBFRealEndpointDataset(boolean b);
// 
// 	CompoundProperty addDistanceToCompoundFeature(Compound c);
// 
// 	CompoundProperty addSALIFeatures(CompoundProperty c);
// 
// 	void predict();
// 
// 	void addPredictionFeature(CompoundProperty clazz, PredictionResult p);
// 
// 	NumericProperty addLogFeature(NumericProperty p);
// 
// 	public CompoundSelection getCompoundSelection(Compound[] c);
// 
// 	boolean isRandomEmbedding();
// 
// 	CompoundProperty getHighlightProperty();
// 
// 	Color getHighlightColorText();
// 
// 	Double getFeatureDistance(int origIndex, int origIndex2);
// 
// 	boolean isSkippingRedundantFeatures();
// 
// 	boolean isBigDataMode();
// 
// 	void computeAppDomain();
// 
// 	boolean doCheSMappingWarningsExist();
// 
// 	void showCheSMappingWarnings();
// 
// }


// Path: src/main/java/org/chesmapper/view/gui/ColorEditor.java
import java.awt.BorderLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.border.EmptyBorder;
import org.chesmapper.map.main.Settings;
import org.chesmapper.view.cluster.Clustering;
import com.jgoodies.forms.factories.ButtonBarFactory;

package org.chesmapper.view.gui;





public class ColorEditor extends JDialog
{
	ViewControler viewControler;
	boolean okPressed = false;
	ColorEditorPanel panels[];

	public ColorEditor(Window owner, String title, ViewControler viewControler, Clustering clustering)