Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

PhysicalView.java

00001 package GuiComponents.SctConf;
00002 
00003 import javax.swing.*;
00004 import javax.swing.event.*;
00005 import java.awt.*;
00006 import java.awt.event.*;
00007 
00008 import org.omg.CORBA.IntHolder;
00009 import org.omg.CORBA.StringHolder;
00010 
00011 import sctConf.*;
00012 
00013 public class PhysicalView extends JPanel {
00014     sctConf.Configuration config;
00015 
00016     JComboBox barrel;
00017     JComboBox rowStart;
00018     JComboBox rowEnd;
00019 
00020     JPanel centre;
00021 
00022     public PhysicalView(sctConf.Configuration conf) {
00023         config = conf;
00024 
00025         setLayout(new BorderLayout());
00026 
00027         JPanel buttons = new JPanel();
00028 
00029         JButton close = new JButton("Close");
00030         close.addActionListener(new ActionListener() {
00031                 public void actionPerformed(ActionEvent e) {
00032                     ((Window)getTopLevelAncestor()).dispose();
00033                 }
00034             });
00035         buttons.add(close);
00036 
00037         add(buttons, BorderLayout.SOUTH);
00038 
00039         JPanel combos = new JPanel();
00040 
00041         Integer [] barrelList = {new Integer(3), new Integer(4), new Integer(5), new Integer(6)};
00042 
00043         barrel = new JComboBox(barrelList);
00044         barrel.setSelectedItem(new Integer(3));
00045         barrel.addActionListener(new ActionListener() {
00046             public void actionPerformed(ActionEvent e) {
00047               // Update the list for different barrel number
00048               ((ComboModel)rowStart.getModel()).fireListeners();
00049               ((ComboModel)rowEnd.getModel()).fireListeners();
00050               updateDisplay();
00051             }
00052           });
00053         combos.add(barrel);
00054 
00055         rowStart = new JComboBox(new ComboModel(0));
00056         //        rowStart.setSelectedItem(new Integer(0));
00057         rowStart.addActionListener(new ActionListener() {
00058             public void actionPerformed(ActionEvent e) {
00059               // For some reason this make the component update afterwards!
00060               ((ComboModel)rowEnd.getModel()).fireListeners();
00061               updateDisplay();
00062             }
00063           });
00064         combos.add(rowStart);
00065 
00066         rowEnd = new JComboBox(new ComboModel(3));
00067         //        rowEnd.setSelectedItem(new Integer(3));
00068         rowEnd.addActionListener(new ActionListener() {
00069             public void actionPerformed(ActionEvent e) {
00070               // For some reason this make the component update afterwards!
00071               ((ComboModel)rowStart.getModel()).fireListeners();
00072               updateDisplay();
00073             }
00074           });
00075         combos.add(rowEnd);
00076 
00077         add(combos, BorderLayout.NORTH);
00078 
00079         centre = new JPanel();
00080         updateDisplay();
00081         add(centre, BorderLayout.CENTER);
00082     }
00083 
00084     public void updateDisplay() {
00085         centre.removeAll();
00086 
00087         centre.setLayout(new GridLayout(1, 4));
00088 
00089         JPanel barrelPanel =  new JPanel();
00090         barrelPanel.setLayout(new GridLayout(0, 12));
00091 
00092         int b = ((Integer)barrel.getSelectedItem()).intValue();
00093         int start = ((Integer)rowStart.getSelectedItem()).intValue();
00094         int end = ((Integer)rowEnd.getSelectedItem()).intValue();
00095 
00096         for(int r=start; r<end; r++) {
00097             for(int i=-6; i<=6; i++) {
00098                 if(i == 0) continue;
00099 
00100                 StringHolder serial = new StringHolder();
00101 
00102                 try {
00103                     IntHolder MUR = new IntHolder();
00104                     IntHolder mod = new IntHolder();
00105 
00106                     serial = new StringHolder();
00107 
00108                     config.translateFromBarrel(b, r, i, MUR, mod);
00109                     config.translateToSN(MUR.value, mod.value, serial);
00110                 } catch(ConfigurationException e) {
00111                     serial.value = "position " + i;
00112                 }
00113 
00114                 barrelPanel.add(new JLabel(serial.value + " "));
00115             }
00116         }
00117 
00118         centre.add(barrelPanel);
00119         centre.invalidate();
00120         barrelPanel.doLayout();
00121         centre.repaint();
00122     }
00123 
00124     public class ComboModel implements ComboBoxModel {
00125         Integer selection;
00126         java.util.Vector listeners;
00127 
00128         ComboModel(int i) {
00129             selection = new Integer(i);
00130             listeners = new java.util.Vector();
00131         }
00132 
00133         public Object getSelectedItem() {
00134             return selection;
00135         }
00136 
00137         public void setSelectedItem(Object select) {
00138             selection = (Integer)select;
00139         }
00140 
00141         public void addListDataListener(ListDataListener l) {
00142             listeners.add(l);
00143         }
00144 
00145         public Object getElementAt(int index) {
00146             return new Integer(index);
00147         }
00148         public int getSize() {
00149             int numRows = 0;
00150             switch(((Integer)barrel.getSelectedItem()).intValue()) {
00151             case 3: numRows = 32; break;
00152             case 4: numRows = 40; break;
00153             case 5: numRows = 48; break;
00154             case 6: numRows = 56; break;
00155             }
00156 
00157             return numRows;
00158         }
00159 
00160         public void fireListeners() {
00161             for(int i=0; i<listeners.size(); i++) {
00162                 ListDataEvent event = new ListDataEvent(this, ListDataEvent.CONTENTS_CHANGED, 0, 56);
00163                 ((ListDataListener)listeners.get(i)).contentsChanged(event);
00164             }
00165         }
00166 
00167         public void removeListDataListener(ListDataListener l) {
00168           listeners.remove(l);
00169         }
00170     }
00171 }

Generated on Thu Jul 15 09:55:46 2004 for SCT DAQ/DCS Software - Java by doxygen 1.3.5