package org.chesmapper.view.gui.util;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import org.chesmapper.view.cluster.ClusteringImpl;
import org.chesmapper.view.gui.ViewControler;
public class HighlightAutomatic
{
boolean automatic = false;
ViewControler controler;
ClusteringImpl clustering;
public HighlightAutomatic(ViewControler controler, ClusteringImpl clustering)
{
this.controler = controler;
this.clustering = clustering;
controler.addViewListener(new PropertyChangeListener()
{
@Override
public void propertyChange(PropertyChangeEvent evt)
{
if (evt.getPropertyName().equals(ViewControler.PROPERTY_HIGHLIGHT_CHANGED))
{
update();
}
}
});
init();
}
public void init()
{
automatic = true;
}
private void update()
{
if (controler.getHighlighter() == Highlighter.CLUSTER_HIGHLIGHTER && !clustering.isClusterActive())
automatic = true;
else
automatic = false;
}
public boolean resetClusterHighlighter(boolean activeClusterChanged)
{
if (automatic && controler.getHighlighter() == Highlighter.DEFAULT_HIGHLIGHTER && activeClusterChanged
&& clustering.getNumClusters() > 1 && !clustering.isClusterActive())
{
controler.setHighlighter(Highlighter.CLUSTER_HIGHLIGHTER, false);
automatic = true;
return true;
}
return false;
}
public boolean resetDefaultHighlighter(boolean activeClusterChanged)
{
if (automatic && controler.getHighlighter() == Highlighter.CLUSTER_HIGHLIGHTER && activeClusterChanged
&& clustering.getNumClusters() > 1 && clustering.isClusterActive())
{
controler.setHighlighter(Highlighter.DEFAULT_HIGHLIGHTER, false);
automatic = true;
return true;
}
return false;
}
}