def __init__(self,scl_long_tuneup_controller): self.scl_long_tuneup_controller = scl_long_tuneup_controller self.setLayout(BorderLayout()) #----etched border etched_border = BorderFactory.createEtchedBorder() titled_border = BorderFactory.createTitledBorder(etched_border,"BPM Table and Plots") self.setBorder(titled_border) #---------------------------------------- self.bpm_table = JTable(Energy_Meter_BPMs_Table_Model(self.scl_long_tuneup_controller)) self.bpm_table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION) self.bpm_table.setFillsViewportHeight(true) self.bpm_table.setPreferredScrollableViewportSize(Dimension(400,300)) scrl_panel = JScrollPane(self.bpm_table) scrl_panel.setBorder(etched_border) bpm_table_panel = JPanel(BorderLayout()) bpm_table_panel.add(scrl_panel,BorderLayout.WEST) #----------------------------------------- self.gp_bpm_phase_err = FunctionGraphsJPanel() self.gp_bpm_phase_err.setLegendButtonVisible(true) self.gp_bpm_phase_err.setChooseModeButtonVisible(true) self.gp_bpm_phase_err.setName("BPM Phase Errors") self.gp_bpm_phase_err.setAxisNames("position, [m]","BPM Phase Error, [deg]") self.gp_bpm_phase_err.setBorder(etched_border) bpm_graph_panel = JPanel(BorderLayout()) bpm_graph_panel.add(self.gp_bpm_phase_err) #------graph data self.bpm_phase_err_gd = BasicGraphData() self.bpm_phase_err_gd.setGraphPointSize(8) self.bpm_phase_err_gd.setDrawLinesOn(false) self.bpm_phase_err_gd.setGraphColor(Color.BLUE) self.gp_bpm_phase_err.addGraphData(self.bpm_phase_err_gd) #----------------------------------------- self.add(bpm_table_panel,BorderLayout.WEST) self.add(bpm_graph_panel,BorderLayout.CENTER)
def __init__(self, title): self.gpF = FunctionGraphsJPanel() self.gpF.setLegendButtonVisible(true) self.gpF.setChooseModeButtonVisible(true) self.gpF.setName(title) self.gpF.setAxisNames("time, [sec]","Value, [arb. units]") etched_border = BorderFactory.createEtchedBorder() self.gpF.setBorder(etched_border) self.gd_arr = [] self.color_arr = [Color.BLUE,Color.BLACK,Color.RED,Color.GREEN,Color.MAGENTA]
def __init__(self, scl_scan_data_cleanup_controller): self.scl_scan_data_cleanup_controller = scl_scan_data_cleanup_controller self.setLayout(GridLayout(2, 1)) #----etched border etched_border = BorderFactory.createEtchedBorder() self.setBorder(etched_border) self.gp_bpm_phases = FunctionGraphsJPanel() self.gp_bpm_amps = FunctionGraphsJPanel() self.gp_bpm_phases.setLegendButtonVisible(true) self.gp_bpm_phases.setChooseModeButtonVisible(true) self.gp_bpm_amps.setLegendButtonVisible(true) self.gp_bpm_amps.setChooseModeButtonVisible(true) self.gp_bpm_phases.setName("BPM Phases") self.gp_bpm_phases.setAxisNames("Cav Phase, [deg]", "BPM Phase, [deg]") self.gp_bpm_amps.setName("BPM Amplitude") self.gp_bpm_amps.setAxisNames("Cav Phase, [deg]", "Amplitude, a.u.") self.gp_bpm_phases.setBorder(etched_border) self.gp_bpm_amps.setBorder(etched_border) self.add(self.gp_bpm_phases) self.add(self.gp_bpm_amps)
def __init__(self,scl_long_tuneup_controller): self.scl_long_tuneup_controller = scl_long_tuneup_controller self.setLayout(GridLayout(1,1)) #----etched border etched_border = BorderFactory.createEtchedBorder() self.setBorder(etched_border) self.gp_energy_plot = FunctionGraphsJPanel() self.gp_energy_plot.setLegendButtonVisible(true) self.gp_energy_plot.setChooseModeButtonVisible(true) self.gp_energy_plot.setName("Output Energy vs. Cavity Phase: ") self.gp_energy_plot.setAxisNames("Cav Phase, [deg]","Ekin Out, [MeV]") self.gp_energy_plot.setBorder(etched_border) self.add(self.gp_energy_plot)
def __init__(self,transverse_twiss_analysis_Controller): self.transverse_twiss_analysis_Controller = transverse_twiss_analysis_Controller self.setLayout(GridLayout(3,1)) #----etched border etched_border = BorderFactory.createEtchedBorder() self.setBorder(etched_border) self.gpanel_hor = FunctionGraphsJPanel() self.gpanel_ver = FunctionGraphsJPanel() self.gpanel_lon = FunctionGraphsJPanel() self.gpanel_hor.setLegendButtonVisible(true) self.gpanel_ver.setLegendButtonVisible(true) self.gpanel_lon.setLegendButtonVisible(true) self.gpanel_hor.setName("Horizontal Size") self.gpanel_hor.setAxisNames("pos, [m]","Size, [mm]") self.gpanel_ver.setName("Vertical Size") self.gpanel_ver.setAxisNames("pos, [m]","Size, [mm]") self.gpanel_lon.setName("Longitudinal Size, RF Freq. = 402.5 MHz") self.gpanel_lon.setAxisNames("pos, [m]","Size, [deg]") self.gpanel_hor.setBorder(etched_border) self.gpanel_ver.setBorder(etched_border) self.gpanel_lon.setBorder(etched_border) self.add(self.gpanel_hor) self.add(self.gpanel_ver) self.add(self.gpanel_lon)
def __init__(self,dtl_acceptance_scans_controller): self.dtl_acceptance_scans_controller = dtl_acceptance_scans_controller self.main_loop_controller = self.dtl_acceptance_scans_controller.main_loop_controller #---------------------------------------- etched_border = BorderFactory.createEtchedBorder() self.gp_acc_scan = FunctionGraphsJPanel() self.gp_scan_width = FunctionGraphsJPanel() #------------------------------------------ self.gp_acc_scan.setLegendButtonVisible(true) self.gp_scan_width.setLegendButtonVisible(true) #------------------------------------------ self.gp_acc_scan.setChooseModeButtonVisible(true) self.gp_scan_width.setChooseModeButtonVisible(true) #------------------------------------------ self.gp_acc_scan.setName("Acceptance Scan: FC vs. RF Phase") self.gp_scan_width.setName("Acc. Width vs. RF Ampl") self.gp_acc_scan.setAxisNames("Cav Phase, [deg]","FC Q, [a.u.]") self.gp_scan_width.setAxisNames("RF Amplitude, [a.u]","Acceptance Width, [deg]") self.gp_acc_scan.setBorder(etched_border) self.gp_scan_width.setBorder(etched_border) #--------------------------------------------- self.graphs_panel = JTabbedPane() self.graphs_panel.add("Acceptance Scan Data",self.gp_acc_scan) self.graphs_panel.add("Acc. Width",self.gp_scan_width)
def __init__(self,ws_lw_acquisition_controller): self.ws_lw_acquisition_controller = ws_lw_acquisition_controller self.local_gauss_fitter = Local_Gauss_Fitter() self.main_panel = JPanel(BorderLayout()) self.ws_records_table_model = WS_Records_Table_Model() #----etched border etched_border = BorderFactory.createEtchedBorder() #---make the WS_Records_JTable + Graph Panel self.records_table = JTable(self.ws_records_table_model) self.records_table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION) self.records_table.setFillsViewportHeight(true) #----set up records_table columns width columnModel = self.records_table.getColumnModel() columnModel.getColumn(0).setPreferredWidth(30) columnModel.getColumn(1).setPreferredWidth(160) columnModel.getColumn(2).setPreferredWidth(40) columnModel.getColumn(3).setPreferredWidth(40) columnModel.getColumn(4).setPreferredWidth(80) columnModel.getColumn(5).setPreferredWidth(70) columnModel.getColumn(6).setPreferredWidth(70) #--------------------------------------------------- records_panel = JPanel(BorderLayout()) records_panel.add(JScrollPane(self.records_table), BorderLayout.CENTER) knobs_gauss_panel = JPanel(BorderLayout()) records_panel.add(knobs_gauss_panel, BorderLayout.SOUTH) records_panel.setBorder(etched_border) #---records knobs --------------------------------------------- records_knobs_panel = JPanel(FlowLayout(FlowLayout.CENTER,5,5)) guess_and_fit_button = JButton("Guess and Fit") analysis_all_button = JButton("G&F All") fit_button = JButton("Fit") fit_all_button = JButton("Fit All") send_to_twiss_button = JButton("Send to Twiss Analysis") records_knobs_panel.add(guess_and_fit_button) records_knobs_panel.add(analysis_all_button) records_knobs_panel.add(fit_button) records_knobs_panel.add(fit_all_button) records_knobs_panel.add(send_to_twiss_button) guess_and_fit_button.addActionListener(Guess_And_Fit_Listener(self.ws_lw_acquisition_controller)) fit_button.addActionListener(Fit_Listener(self.ws_lw_acquisition_controller)) fit_all_button.addActionListener(Fit_All_Listener(self.ws_lw_acquisition_controller)) analysis_all_button.addActionListener(Guess_And_Fit_All_Listener(self.ws_lw_acquisition_controller)) send_to_twiss_button.addActionListener(SendToAnalysis_Listener(self.ws_lw_acquisition_controller)) self.gauss_fit_param_panel = GaussFitDataPanel() knobs_gauss_panel.add(records_knobs_panel, BorderLayout.NORTH) knobs_gauss_panel.add(self.gauss_fit_param_panel, BorderLayout.SOUTH) #--------------------------------------------------------- self.record_analysis_panel = JPanel(BorderLayout()) border = BorderFactory.createTitledBorder(etched_border,"WS/LW Wave Form Analysis") self.record_analysis_panel.setBorder(border) self.record_analysis_panel.add(records_panel, BorderLayout.WEST) self.gpanel_WF = FunctionGraphsJPanel() self.gpanel_WF.setLegendButtonVisible(true) self.gpanel_WF.setChooseModeButtonVisible(true) self.gpanel_WF.setName("Profile") self.gpanel_WF.setAxisNames("pos, [mm]","Amp, [arb. units]") self.gpanel_WF.setBorder(etched_border) self.gpanel_WF.addVerticalLine(-1.0e+30,Color.red) self.gpanel_WF.addVerticalLine(+1.0e+30,Color.red) self.gpanel_WF.setVerLinesButtonVisible(true) self.gpanel_WF.addDraggedVerLinesListener(Position_Limits_Listener(self.ws_lw_acquisition_controller)) write_waveforms_to_ascii_button = JButton("Write Waveforms to ASCII File") write_waveforms_to_ascii_button.addActionListener(Write_Waveforms_to_ASCII_Listener(self.ws_lw_acquisition_controller)) below_graph_panel = JPanel(FlowLayout(FlowLayout.LEFT,5,5)) below_graph_panel.add(write_waveforms_to_ascii_button) graph_panel_left = JPanel(BorderLayout()) graph_panel_left.add(self.gpanel_WF, BorderLayout.CENTER) graph_panel_left.add(below_graph_panel, BorderLayout.SOUTH) self.record_analysis_panel.add(graph_panel_left, BorderLayout.CENTER) self.main_panel.add(self.record_analysis_panel, BorderLayout.CENTER) #---set up Listeners self.records_table.getSelectionModel().addListSelectionListener(WS_Record_Table_Selection_Listener(self.ws_lw_acquisition_controller))
def __init__(self,linac_wizard_document): #--- linac_wizard_document the parent document for all controllers self.linac_wizard_document = linac_wizard_document self.main_panel = JPanel(GridLayout(2,1)) self.quadFieldDict = {} self.cavAmpPhaseDict = {} self.quads = [] self.cavs = [] self.ws_table_model = WS_Table_Model() #----make LW or WS nodes self.ws_nodes = [] #----etched border etched_border = BorderFactory.createEtchedBorder() #---make the WS_JTable + H&V Graphs Panels self.ws_table = JTable(self.ws_table_model) self.ws_table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION) self.ws_table.setFillsViewportHeight(true) ws_panel = JPanel(BorderLayout()) ws_panel.add(JScrollPane(self.ws_table), BorderLayout.CENTER) ws_knobs_panel = JPanel(FlowLayout(FlowLayout.CENTER,5,5)) ws_panel.add(ws_knobs_panel, BorderLayout.SOUTH) ws_panel.setBorder(etched_border) #---ws knobs --------------------------------------------- get_ws_data_button = JButton("Get WS/LW Data") switch_hv_button = JButton(" Switch H/V ") add_data_to_pool_button = JButton(" Add Data to Pool ") ws_knobs_panel.add(get_ws_data_button) ws_knobs_panel.add(switch_hv_button) ws_knobs_panel.add(add_data_to_pool_button) get_ws_data_button.addActionListener(WS_GET_Data_Listener(self)) switch_hv_button.addActionListener(Switch_HV_Listener(self)) add_data_to_pool_button.addActionListener(WS_Data_to_Pool_Listener(self)) #--------------------------------------------------------- ws_and_graphs_panel = JPanel(BorderLayout()) border = BorderFactory.createTitledBorder(etched_border,"WS/LW Raw Data Acquisition") ws_and_graphs_panel.setBorder(border) ws_and_graphs_panel.add(ws_panel, BorderLayout.WEST) graphs_panel = JPanel(GridLayout(1,2)) self.gpanel_horWF = FunctionGraphsJPanel() self.gpanel_verWF = FunctionGraphsJPanel() self.gpanel_horWF.setLegendButtonVisible(true) self.gpanel_horWF.setChooseModeButtonVisible(true) self.gpanel_verWF.setLegendButtonVisible(true) self.gpanel_verWF.setChooseModeButtonVisible(true) self.gpanel_horWF.setName("Horizontal Profiles") self.gpanel_horWF.setAxisNames("pos, [mm]","Amp, [arb. units]") self.gpanel_verWF.setName("Vertical Profiles") self.gpanel_verWF.setAxisNames("pos, [mm]","Amp, [arb. units]") self.gpanel_horWF.setBorder(etched_border) self.gpanel_verWF.setBorder(etched_border) graphs_panel.add(self.gpanel_horWF) graphs_panel.add(self.gpanel_verWF) ws_and_graphs_panel.add(graphs_panel, BorderLayout.CENTER) self.setDataToGraphPanels(-1) #------analysis sub-panel self.ws_data_analysis_controller = WS_Data_Analysis_Controller(self) #---put everything into the main_panel self.main_panel.add(ws_and_graphs_panel) self.main_panel.add(self.ws_data_analysis_controller.main_panel) #---set up Listeners self.ws_table.getSelectionModel().addListSelectionListener(WS_Table_Selection_Listener(self))
# The contsants import sys import os import math import types import time import random from java.lang import * from xal.extension.widgets.plot import FunctionGraphsJPanel false = Boolean("false").booleanValue() true = Boolean("true").booleanValue() null = None #default graph panel legend key GRAPH_LEGEND_KEY = FunctionGraphsJPanel().getLegendKeyString()
def __init__(self,mebt_main_orbit_diff_cntrl): self.mebt_main_orbit_diff_cntrl = mebt_main_orbit_diff_cntrl self.setLayout(BorderLayout()) tabbedPane = JTabbedPane() #----etched border etched_border = BorderFactory.createEtchedBorder() #---- plots for Hor-Ver and Longitudinal self.hor_plot = FunctionGraphsJPanel() self.hor_plot.setLegendButtonVisible(true) self.hor_plot.setChooseModeButtonVisible(true) self.hor_plot.setName("Horizontal Plane (Vert.Lns.: Black:quads Blue:DC Red:Cavs)") self.hor_plot.setAxisNames("Position, m","X[mm]") self.hor_plot.setBorder(etched_border) self.ver_plot = FunctionGraphsJPanel() self.ver_plot.setLegendButtonVisible(true) self.ver_plot.setChooseModeButtonVisible(true) self.ver_plot.setName("Vertical Plane (Vert.Lns.: Black:quads Blue:DC Red:Cavs)") self.ver_plot.setAxisNames("Position, m","Y[mm]") self.ver_plot.setBorder(etched_border) #------------------------------------------------ self.hor_diff_plot = FunctionGraphsJPanel() self.hor_diff_plot.setLegendButtonVisible(true) self.hor_diff_plot.setChooseModeButtonVisible(true) self.hor_diff_plot.setName("Horizontal Plane (Vert.Lns.: Black:quads Blue:DC Red:Cavs)") self.hor_diff_plot.setAxisNames("Position, m","Diff X[mm]") self.hor_diff_plot.setBorder(etched_border) self.ver_diff_plot = FunctionGraphsJPanel() self.ver_diff_plot.setLegendButtonVisible(true) self.ver_diff_plot.setChooseModeButtonVisible(true) self.ver_diff_plot.setName("Vertical Plane (Vert.Lns.: Black:quads Blue:DC Red:Cavs)") self.ver_diff_plot.setAxisNames("Position, m","Diff Y[mm]") self.ver_diff_plot.setBorder(etched_border) #-------------------------------------------------------------------- quad_wrappers = self.mebt_main_orbit_diff_cntrl.quad_wrappers dc_wrappers = self.mebt_main_orbit_diff_cntrl.dc_wrappers mebt_cav_wrappers = self.mebt_main_orbit_diff_cntrl.mebt_cav_wrappers for wrapper in quad_wrappers: self.hor_plot.addVerticalLine(wrapper.pos,Color.BLACK) self.ver_plot.addVerticalLine(wrapper.pos,Color.BLACK) self.hor_diff_plot.addVerticalLine(wrapper.pos,Color.BLACK) self.ver_diff_plot.addVerticalLine(wrapper.pos,Color.BLACK) for wrapper in dc_wrappers: self.hor_plot.addVerticalLine(wrapper.pos,Color.BLUE) self.ver_plot.addVerticalLine(wrapper.pos,Color.BLUE) self.hor_diff_plot.addVerticalLine(wrapper.pos,Color.BLUE) self.ver_diff_plot.addVerticalLine(wrapper.pos,Color.BLUE) for wrapper in mebt_cav_wrappers: self.hor_plot.addVerticalLine(wrapper.pos,Color.RED) self.ver_plot.addVerticalLine(wrapper.pos,Color.RED) self.hor_diff_plot.addVerticalLine(wrapper.pos,Color.RED) self.ver_diff_plot.addVerticalLine(wrapper.pos,Color.RED) #--------------------------------------------------------------------- #-------------------------------------------------- #---- panels graph_diff_panel = JPanel(GridLayout(2,1)) graph_diff_panel.add(self.hor_diff_plot) graph_diff_panel.add(self.ver_diff_plot) #---------------------------------- graph_panel = JPanel(GridLayout(2,1)) graph_panel.add(self.hor_plot) graph_panel.add(self.ver_plot) #---------------------------------- tabbedPane.add("Orbit Difference",graph_diff_panel) tabbedPane.add("Orbit",graph_panel) #------------------------------------- self.x_model_gd = BasicGraphData() self.x_model_gd.setLineThick(3) self.x_model_gd.setGraphPointSize(7) self.x_model_gd.setGraphColor(Color.BLUE) self.x_model_gd.setGraphProperty(GRAPH_LEGEND_KEY,"X Model [mm]") self.x_model_gd.setDrawLinesOn(true) self.x_model_gd.setDrawPointsOn(false) #------------------------------------- self.y_model_gd = BasicGraphData() self.y_model_gd.setLineThick(3) self.y_model_gd.setGraphPointSize(7) self.y_model_gd.setGraphColor(Color.RED) self.y_model_gd.setGraphProperty(GRAPH_LEGEND_KEY,"Y Model [mm]") self.y_model_gd.setDrawLinesOn(true) self.y_model_gd.setDrawPointsOn(false) #------------------------------------- self.x_model_diff_gd = BasicGraphData() self.x_model_diff_gd.setLineThick(3) self.x_model_diff_gd.setGraphPointSize(7) self.x_model_diff_gd.setGraphColor(Color.BLUE) self.x_model_diff_gd.setGraphProperty(GRAPH_LEGEND_KEY,"X Diff Model [mm]") self.x_model_diff_gd.setDrawLinesOn(true) self.x_model_diff_gd.setDrawPointsOn(false) #------------------------------------- self.y_model_diff_gd = BasicGraphData() self.y_model_diff_gd.setLineThick(3) self.y_model_diff_gd.setGraphPointSize(7) self.y_model_diff_gd.setGraphColor(Color.RED) self.y_model_diff_gd.setGraphProperty(GRAPH_LEGEND_KEY,"Y Diff Model [mm]") self.y_model_diff_gd.setDrawLinesOn(true) self.y_model_diff_gd.setDrawPointsOn(false) #------------------------------------- #------------------------------------- self.x_bpm_gd = BasicGraphData() self.x_bpm_gd.setLineThick(3) self.x_bpm_gd.setGraphPointSize(7) self.x_bpm_gd.setGraphColor(Color.BLUE) self.x_bpm_gd.setGraphProperty(GRAPH_LEGEND_KEY,"X BPM [mm]") self.x_bpm_gd.setDrawLinesOn(false) self.x_bpm_gd.setDrawPointsOn(true) #------------------------------------- self.y_bpm_gd = BasicGraphData() self.y_bpm_gd.setLineThick(3) self.y_bpm_gd.setGraphPointSize(7) self.y_bpm_gd.setGraphColor(Color.RED) self.y_bpm_gd.setGraphProperty(GRAPH_LEGEND_KEY,"Y BPM [mm]") self.y_bpm_gd.setDrawLinesOn(false) self.y_bpm_gd.setDrawPointsOn(true) #------------------------------------- self.x_bpm_diff_gd = BasicGraphData() self.x_bpm_diff_gd.setLineThick(3) self.x_bpm_diff_gd.setGraphPointSize(7) self.x_bpm_diff_gd.setGraphColor(Color.BLUE) self.x_bpm_diff_gd.setGraphProperty(GRAPH_LEGEND_KEY,"X Diff BPM [mm]") self.x_bpm_diff_gd.setDrawLinesOn(false) self.x_bpm_diff_gd.setDrawPointsOn(true) #------------------------------------- self.y_bpm_diff_gd = BasicGraphData() self.y_bpm_diff_gd.setLineThick(3) self.y_bpm_diff_gd.setGraphPointSize(7) self.y_bpm_diff_gd.setGraphColor(Color.RED) self.y_bpm_diff_gd.setGraphProperty(GRAPH_LEGEND_KEY,"Y Diff BPM [mm]") self.y_bpm_diff_gd.setDrawLinesOn(false) self.y_bpm_diff_gd.setDrawPointsOn(true) #------------------------------------- self.index0_button = JRadioButton("Orbit #0") self.index1_button = JRadioButton("Orbit #1") self.button_group = ButtonGroup() self.button_group.add(self.index0_button) self.button_group.add(self.index1_button) self.index0_button.setSelected(true) replot_button = JButton("Replot Graphs") replot_button.addActionListener(Replot_Button_Listener(self.mebt_main_orbit_diff_cntrl)) button_panel = JPanel(FlowLayout(FlowLayout.LEFT,3,3)) button_panel.add(self.index0_button) button_panel.add(self.index1_button) button_panel.add(replot_button) #----------------------------------------------- self.add(tabbedPane,BorderLayout.CENTER) self.add(button_panel,BorderLayout.SOUTH)