00001 package DisplayGUI;
00002
00003 import Sct_CalibrationController.TestData;
00004 import is.*;
00005 import Sct.Serializable;
00006 import Sct.IS.*;
00007
00012 public class TestSelection implements TestDataInfo {
00013
00014 String resultObjectHeader;
00015 String sctdbObjectHeader;
00016 String testObjectHeader;
00017 String sctdbRodDaqObjectHeader;
00018 String regex;
00019 TestData testData;
00020 int testIndex;
00021 String testObjectName;
00022
00023 public TestSelection(String testObjectName, String location) {
00024
00025 StringBuffer regexB = new StringBuffer(".*(");
00026 testIndex=-1;
00027 this.testObjectName = testObjectName;
00028
00029 try {
00030 testData = new TestData();
00031 GuiComponents.System.ISInterface.getInstance().getRepository().getValue(testObjectName, testData);
00032 String runNo = Integer.toString(testData.runNumber);
00033 for(int k=testData.startScanNumber;k<testData.startScanNumber+testData.nScans;k++) {
00034 if(k>testData.startScanNumber) regexB.append("|");
00035 regexB.append("\\.");
00036 regexB.append(runNo);
00037 regexB.append("\\.");
00038 regexB.append(Integer.toString(k));
00039 regexB.append("\\.");
00040 }
00041 regexB.append(")");
00042
00043
00044 String testName = testData.testName;
00045 for(int i=0;i<testNames.length;i++) {
00046 if(testName.indexOf(testNames[i])!=-1) {
00047 if(testName.equals("NPtGainTest") && testData.nScans==3) {
00048 testIndex=TEST_3PTGAIN;
00049 break;
00050 }
00051 testIndex=i;
00052 break;
00053 }
00054 }
00055 }catch(Exception e2) {
00056 System.err.println("SctGUI::TestSelection : Exception extracting TestData : "+e2.toString());
00057 testData=null;
00058 }
00059
00060 if(testIndex==-1) {
00061 System.out.println("SctGui::TestSelection : Unrecognised testname: "+testData.testName);
00062 System.out.println("SctGUI::TestSelection : Assuming DefaultTest ");
00063 testIndex = TEST_DEFAULT;
00064
00065
00066
00067
00068
00069
00070 }
00071
00072 testObjectHeader = "TestData.SctData::"+testData.testName+"Result."+Integer.toString(testData.runNumber)+"."+Integer.toString(testData.startScanNumber)+".";
00073 resultObjectHeader = isRetrievedData() ? "RetrievedData.Summary."+Integer.toString(testData.runNumber)+"."+Integer.toString(testData.startScanNumber)+"." : "TestData.Summary."+Integer.toString(testData.runNumber)+"."+Integer.toString(testData.startScanNumber)+".";
00074 sctdbObjectHeader = "SCTDBData."+testNames[testIndex]+"."+location+".";
00075 sctdbRodDaqObjectHeader = "SCTDBData."+location+".Summary."+Integer.toString(testData.runNumber)+"."+Integer.toString(testData.startScanNumber)+".";
00076 regex = regexB.toString();
00077 }
00078 public void setSCTDBLocation(String location) {
00079 sctdbObjectHeader=null;
00080 if(testIndex==-1) return;
00081 sctdbObjectHeader = "SCTDBData."+testNames[testIndex]+"."+location+".";
00082 }
00083 public String getRunScanRegex() {
00084 return regex;
00085 }
00086 public int getTestIndex() {
00087 return testIndex;
00088 }
00089 public String getTestObjectHeader() {
00090 return testObjectHeader;
00091 }
00092 public String getResultObjectHeader() {
00093 return resultObjectHeader;
00094 }
00095 public String getSCTDBObjectHeader() {
00096 return sctdbObjectHeader;
00097 }
00098 public String getSCTDBRodDaqObjectHeader() {
00099 return sctdbRodDaqObjectHeader;
00100 }
00101 public int getRunNo() {
00102 if(testData==null) return -1;
00103 else return testData.runNumber;
00104 }
00105 public int getScanNo() {
00106 if(testData==null) return -1;
00107 else return testData.startScanNumber;
00108 }
00109 public int getNoScans() {
00110 if(testData==null) return 0;
00111 else return testData.nScans;
00112 }
00113 public String getTestName() {
00114 if(testData==null) return null;
00115 else return testData.testName;
00116 }
00117 public int getStartScanNumber() {
00118 if(testData==null) return -1;
00119 else return testData.startScanNumber;
00120 }
00121 public TestData getTestData() {
00122
00123 try {
00124 GuiComponents.System.ISInterface.getInstance().getRepository().getValue(testObjectName, testData);
00125 return testData;
00126 }catch(Exception e){System.err.println("SctGUI::TestSelection - cant retrieve testData - "+e.toString());}
00127 return null;
00128 }
00129 public int getTestStatus() {
00130 try {
00131 GuiComponents.System.ISInterface.getInstance().getRepository().getValue(testObjectName, testData);
00132 return testData.status;
00133 }catch(Exception e){System.err.println("SctGUI::TestSelection - cant retrieve testData - "+e.toString());}
00134 return -1;
00135 }
00136 public boolean isRetrievedData() {
00137 return testObjectName.startsWith("RetrievedData");
00138 }
00139 public boolean isSCTDBRodDaqData() {
00140 return testObjectName.startsWith("SCTDBData");
00141 }
00142
00143 }
00144