package jas2.swingstudio.adaptor;
import javax.swing.*;
import jas2.util.*;
import java.awt.event.*;
import java.util.*;
import jas2.job.HistogramAccess;
import jas2.hist.*;
import jas2.swingstudio.*;
public class HistogramAccessTreeAdaptor extends TreeAdaptor
{
protected void init()
{
m_hist = (HistogramAccess) getAssociatedObject();
reset();
}
protected void updateNode(int flags)
{
if ((flags & Job.SHOWNOW) != 0)
{
if (JavaAnalysisStudio.getApp().getCurrentPage() != null) onShowInNewPlot();
else onShowOnNewPage();
}
if ((flags & Job.RESET) != 0) reset();
}
/**
* Called when a RESET message is sent to this node
*/
private void reset()
{
DataSource ds = m_hist.getData();
if (ds instanceof Rebinnable1DHistogramData) m_data = new OneDTreeData(getTreeItem(),(Rebinnable1DHistogramData) ds);
else if (ds instanceof Rebinnable2DHistogramData) m_data = new ScatterTreeData(getTreeItem(),(Rebinnable2DHistogramData) ds);
}
public void onShowInNewPlot()
{
JASPage page = JavaAnalysisStudio.getApp().getCurrentPage();
page.addPlot();
JASHist plot = page.getCurrentPlot();
plot.addData(m_data).show(true);
page.calculateTitlesAndLabels(plot);
page.currentPlotUpdated();
}
public void enableShowInNewPlot(JASState state)
{
state.setEnabled(m_data != null && JavaAnalysisStudio.getApp().getCurrentPage() != null);
}
public void onShowOnNewPage()
{
JASPage page = JavaAnalysisStudio.getApp().createNewPage();
JASHist plot = page.getCurrentPlot();
plot.addData(m_data).show(true);
page.calculateTitlesAndLabels(plot);
page.currentPlotUpdated();
}
public void enableShowOnNewPage(JASState state)
{
state.setEnabled(m_data != null);
}
public void onShow()
{
JASPage page = JavaAnalysisStudio.getApp().createCurrentPage();
if (page != null)
{
JASHist plot = page.getCurrentPlot();
plot.removeAllData();
plot.addData(m_data).show(true);
page.calculateTitlesAndLabels(plot);
page.currentPlotUpdated();
}
}
public void enableShow(JASState state)
{
state.setEnabled(m_data != null);
}
public void onOverlay()
{
JASPage page = JavaAnalysisStudio.getApp().getCurrentPage();
JASHist plot = page.getCurrentPlot();
plot.addData(m_data).show(true);
page.calculateTitlesAndLabels(plot);
page.currentPlotUpdated();
}
public void enableOverlay(JASState state)
{
JASPage page = JavaAnalysisStudio.getApp().getCurrentPage();
if (page != null && m_data != null)
{
JASHist plot = page.getCurrentPlot();
state.setEnabled(plot.getNumberOfDataSources()>0);
}
else state.setEnabled(false);
}
public void onDelete()
{
m_hist.delete();
}
public void onRename()
{
startEditing();
}
public boolean stopEditing(String newName)
{
try
{
m_hist.rename(newName);
return true;
}
catch (hepjas.analysis.NamedObject.RenameException x)
{
JavaAnalysisStudio.getApp().error("Illegal name",x);
return false;
}
}
public void enableClearOnRewind(JASCheckboxState state)
{
state.setEnabled(m_hist.canSetClearOnRewind());
state.setCheckbox(m_hist.isClearOnRewind());
}
public void onClearOnRewind(boolean value)
{
m_hist.setClearOnRewind(value);
}
public void onClear()
{
m_hist.clear();
}
public void onDoubleClick()
{
if (m_data != null) onShow();
}
public void onSelect()
{
JavaAnalysisStudio.getApp().setMessage(m_hist.getDescription());
}
protected boolean isEditable()
{
return true;
}
protected JPopupMenu getPopupMenu()
{
if (menu == null)
{
menu = new OnScreenPopupMenu();
menu.add(new JASMenuItem("Show",'S'));
menu.add(new JASMenuItem("Overlay",'O'));
menu.add(new JASMenuItem("Show In New Plot",'P'));
menu.add(new JASMenuItem("Show On New Page",'N'));
menu.add(new JASMenuItem("Clear",'C'));
menu.add(new JASCheckboxMenuItem("Clear On Rewind",'W'));
menu.add(new JASMenuItem("Rename",'R'));
menu.add(new JASMenuItem("Delete",'D'));
}
return menu;
}
private static JPopupMenu menu;
private HistogramAccess m_hist = null;
private DataSource m_data;
}
Ads help maintain this website.