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)	
Esempio n. 2
0
	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]
Esempio n. 3
0
 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)
Esempio n. 5
0
	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)
Esempio n. 7
0
	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))
Esempio n. 8
0
	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))	
Esempio n. 9
0
# 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()
Esempio n. 10
0
	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)