@Override public void handleEvent(Event event) { // TODO Auto-generated method stub Vector<String> values = this.setPlatformsUI.getValues(); Vector<String> samples = this.setPlatformsUI.getSamples(); File file = new File( this.dataType.getPath().toString() + File.separator + this.dataType.getStudy().toString() + ".subject_mapping.tmp"); File stsmf = ((GeneExpressionData) this.dataType).getStsmf(); if (stsmf == null) { this.setPlatformsUI.displayMessage("Error: no subject to sample mapping file"); } try { FileWriter fw = new FileWriter(file); BufferedWriter out = new BufferedWriter(fw); out.write( "study_id\tsite_id\tsubject_id\tSAMPLE_ID\tPLATFORM\tTISSUETYPE\tATTR1\tATTR2\tcategory_cd\n"); try { BufferedReader br = new BufferedReader(new FileReader(stsmf)); String line = br.readLine(); while ((line = br.readLine()) != null) { String[] fields = line.split("\t", -1); String sample = fields[3]; String platform; if (samples.contains(sample)) { platform = values.get(samples.indexOf(sample)); } else { br.close(); return; } out.write( fields[0] + "\t" + fields[1] + "\t" + fields[2] + "\t" + sample + "\t" + platform + "\t" + fields[5] + "\t" + fields[6] + "\t" + fields[7] + "\t" + fields[8] + "\n"); } br.close(); } catch (Exception e) { this.setPlatformsUI.displayMessage("Error: " + e.getLocalizedMessage()); out.close(); e.printStackTrace(); } out.close(); try { File fileDest; if (stsmf != null) { String fileName = stsmf.getName(); stsmf.delete(); fileDest = new File(this.dataType.getPath() + File.separator + fileName); } else { fileDest = new File( this.dataType.getPath() + File.separator + this.dataType.getStudy().toString() + ".subject_mapping"); } FileUtils.moveFile(file, fileDest); ((GeneExpressionData) this.dataType).setSTSMF(fileDest); } catch (IOException ioe) { this.setPlatformsUI.displayMessage("File error: " + ioe.getLocalizedMessage()); return; } } catch (Exception e) { this.setPlatformsUI.displayMessage("Error: " + e.getLocalizedMessage()); e.printStackTrace(); } this.setPlatformsUI.displayMessage("Subject to sample mapping file updated"); WorkPart.updateSteps(); WorkPart.updateFiles(); }
@Override public void handleEvent(Event event) { // TODO Auto-generated method stub File file = new File( this.dataType.getPath().toString() + File.separator + this.dataType.getStudy().toString() + ".subject_mapping.tmp"); File stsmf = ((GeneExpressionData) this.dataType).getStsmf(); if (stsmf == null) { this.setStudyTreeUI.displayMessage("Error: no subject to sample mapping file"); } String category = ""; TreeNode node = this.setStudyTreeUI.getRoot(); if (!node.hasChildren()) { this.setStudyTreeUI.displayMessage("You have to set a category code"); return; } node = node.getChildren().get(0); while (node != null) { if (category.compareTo("") == 0) { category += node.toString().replace(' ', '_'); } else { category += "+" + node.toString().replace(' ', '_'); } if (node.hasChildren()) { node = node.getChildren().get(0); } else { node = null; } } try { FileWriter fw = new FileWriter(file); BufferedWriter out = new BufferedWriter(fw); out.write( "study_id\tsite_id\tsubject_id\tSAMPLE_ID\tPLATFORM\tTISSUETYPE\tATTR1\tATTR2\tcategory_cd\n"); try { BufferedReader br = new BufferedReader(new FileReader(stsmf)); String line = br.readLine(); while ((line = br.readLine()) != null) { String[] fields = line.split("\t", -1); out.write( fields[0] + "\t" + fields[1] + "\t" + fields[2] + "\t" + fields[3] + "\t" + fields[4] + "\t" + fields[5] + "\t" + fields[6] + "\t" + fields[7] + "\t" + category + "\n"); } br.close(); } catch (Exception e) { this.setStudyTreeUI.displayMessage("File error: " + e.getLocalizedMessage()); out.close(); e.printStackTrace(); } out.close(); try { File fileDest; if (stsmf != null) { String fileName = stsmf.getName(); stsmf.delete(); fileDest = new File(this.dataType.getPath() + File.separator + fileName); } else { fileDest = new File( this.dataType.getPath() + File.separator + this.dataType.getStudy().toString() + ".subject_mapping"); } FileUtils.moveFile(file, fileDest); ((GeneExpressionData) this.dataType).setSTSMF(fileDest); } catch (IOException ioe) { this.setStudyTreeUI.displayMessage("File error: " + ioe.getLocalizedMessage()); return; } } catch (Exception e) { this.setStudyTreeUI.displayMessage("Eerror: " + e.getLocalizedMessage()); e.printStackTrace(); } this.setStudyTreeUI.displayMessage("Subject to sample mapping file updated"); WorkPart.updateSteps(); WorkPart.updateFiles(); }
/** * Loads the gene expression data: -initiate Kettle environment -Find Kettle files -Set Kettle * parameters -Calls the Kettle job -Save the log file */ @Override public void handleEvent(Event event) { this.topNode = this.loadDataUI.getTopNode(); this.path = this.dataType.getPath().getAbsolutePath(); this.sortName = this.dataType.getStudy().getPath().getParentFile().getAbsolutePath() + File.separator + ".sort"; loadDataUI.openLoadingShell(); new Thread() { public void run() { try { String[] splited = topNode.split("\\\\", -1); if (splited[0].compareTo("") != 0) { loadDataUI.setMessage("A study node has to begin by the character '\\'"); loadDataUI.setIsLoading(false); return; } try { Class.forName("org.postgresql.Driver"); String connectionString = "jdbc:postgresql://" + PreferencesHandler.getDbServer() + ":" + PreferencesHandler.getDbPort() + "/" + PreferencesHandler.getDbName(); Connection con = DriverManager.getConnection( connectionString, PreferencesHandler.getMetadataUser(), PreferencesHandler.getMetadataPwd()); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("select * from table_access where c_name='" + splited[1] + "'"); if (!rs.next()) { // have to add a top node stmt.executeQuery( "insert into table_access(" + "c_table_cd," + "c_table_name," + "c_protected_access," + "c_hlevel," + "c_fullname," + "c_name," + "c_synonym_cd," + "c_visualattributes," + "c_totalnum," + "c_facttablecolumn," + "c_dimtablename," + "c_columnname," + "c_columndatatype," + "c_operator," + "c_dimcode," + "c_tooltip," + "c_status_cd) values(" + "'" + splited[1] + "'," + "'i2b2'," + "'N'," + "0," + "'\\" + splited[1] + "\\'," + "'" + splited[1] + "'," + "'N'," + "'CA'," + "0," + "'concept_cd'," + "'concept_dimension'," + "'concept_path'," + "'T'," + "'LIKE'," + "'\\" + splited[1] + "\\'," + "'\\" + splited[1] + "\\'," + "'A')"); stmt.executeQuery( "insert into i2b2 values(0, '\\" + splited[1] + "\\', '" + splited[1] + "','N','CA',0,null, null, 'CONCEPT_CD','CONCEPT_DIMENSION','CONCEPT_PATH', 'T', 'LIKE','\\" + splited[1] + "\\', null, '\\" + splited[1] + "\\', sysdate, null, null, null, null, null, '@', null, null, null)"); } con.close(); } catch (SQLException e) { e.printStackTrace(); loadDataUI.displayMessage("SQL error: " + e.getLocalizedMessage()); loadDataUI.setIsLoading(false); return; } catch (ClassNotFoundException e) { loadDataUI.displayMessage("Java error: Class not found exception"); // TODO Auto-generated catch block e.printStackTrace(); loadDataUI.setIsLoading(false); return; } // initiate kettle environment URL kettleUrl = new URL("platform:/plugin/fr.sanofi.fcl4transmart/lib/pentaho"); kettleUrl = FileLocator.toFileURL(kettleUrl); System.setProperty("KETTLE_PLUGIN_BASE_FOLDERS", kettleUrl.getPath()); KettleEnvironment.init(false); // find the kettle job to initiate the loading URL jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/load_gene_expression_data.kjb"); jobUrl = FileLocator.toFileURL(jobUrl); String jobPath = jobUrl.getPath(); // create a new job from the kettle file JobMeta jobMeta = new JobMeta(jobPath, null); Job job = new Job(null, jobMeta); // find the other files needed for this job and put them in the cache jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/validate_gene_expression_params.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/validate_gene_expression_columns.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/check_gene_expression_filenames.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/load_all_gene_expression_files_for_study.kjb"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/run_i2b2_process_mrna_data.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/load_subject_sample_map_to_lt.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/get_list_of_gene_expression_filenames.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/load_gene_expression_one_study.kjb"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/set_gene_expression_filename.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/validate_gene_expression_columns.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/load_gene_expression_data_to_lz.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL("platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/pivot_gene_file.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL("platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/cz_start_audit.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL("platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/cz_end_audit.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/write_gene_expression_audit.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); jobUrl = new URL( "platform:/plugin/fr.sanofi.fcl4transmart/jobs_kettle/write_study_id_to_audit.ktr"); jobUrl = FileLocator.toFileURL(jobUrl); job.getJobMeta().setParameterValue("DATA_FILE_PREFIX", "raw"); job.getJobMeta().setParameterValue("DATA_LOCATION", path); job.getJobMeta() .setParameterValue( "MAP_FILENAME", ((GeneExpressionData) dataType).getStsmf().getName()); job.getJobMeta().setParameterValue("DATA_TYPE", "R"); job.getJobMeta().setParameterValue("LOG_BASE", "2"); job.getJobMeta().setParameterValue("FilePivot_LOCATION", ""); job.getJobMeta().setParameterValue("LOAD_TYPE", "I"); job.getJobMeta().setParameterValue("SAMPLE_REMAP_FILENAME", "NOSAMPLEREMAP"); job.getJobMeta().setParameterValue("SAMPLE_SUFFIX", ".rma-Signal"); if (loadDataUI.getSecurity()) { job.getJobMeta().setParameterValue("SECURITY_REQUIRED", "Y"); } else { job.getJobMeta().setParameterValue("SECURITY_REQUIRED", "N"); } job.getJobMeta().setParameterValue("SOURCE_CD", "STD"); File sort = new File(sortName); if (!sort.exists()) { FileUtils.forceMkdir(sort); } path = sort.getAbsolutePath(); job.getJobMeta().setParameterValue("SORT_DIR", path); job.getJobMeta().setParameterValue("STUDY_ID", dataType.getStudy().toString()); job.getJobMeta().setParameterValue("TOP_NODE", topNode); // job.getJobMeta().setParameterValue("JAVA_HOME", "/usr/local/jdk1.6.0_31"); job.getJobMeta().setParameterValue("TM_CZ_DB_SERVER", PreferencesHandler.getDbServer()); job.getJobMeta().setParameterValue("TM_CZ_DB_NAME", PreferencesHandler.getDbName()); job.getJobMeta().setParameterValue("TM_CZ_DB_PORT", PreferencesHandler.getDbPort()); job.getJobMeta().setParameterValue("TM_CZ_DB_USER", PreferencesHandler.getTm_czUser()); job.getJobMeta().setParameterValue("TM_CZ_DB_PWD", PreferencesHandler.getTm_czPwd()); job.getJobMeta().setParameterValue("TM_LZ_DB_SERVER", PreferencesHandler.getDbServer()); job.getJobMeta().setParameterValue("TM_LZ_DB_NAME", PreferencesHandler.getDbName()); job.getJobMeta().setParameterValue("TM_LZ_DB_PORT", PreferencesHandler.getDbPort()); job.getJobMeta().setParameterValue("TM_LZ_DB_USER", PreferencesHandler.getTm_lzUser()); job.getJobMeta().setParameterValue("TM_LZ_DB_PWD", PreferencesHandler.getTm_lzPwd()); job.getJobMeta().setParameterValue("DEAPP_DB_SERVER", PreferencesHandler.getDbServer()); job.getJobMeta().setParameterValue("DEAPP_DB_NAME", PreferencesHandler.getDbName()); job.getJobMeta().setParameterValue("DEAPP_DB_PORT", PreferencesHandler.getDbPort()); job.getJobMeta().setParameterValue("DEAPP_DB_USER", PreferencesHandler.getDeappUser()); job.getJobMeta().setParameterValue("DEAPP_DB_PWD", PreferencesHandler.getDeappPwd()); if (loadDataUI.getIndexes()) { // drop indexes String connectionString = "jdbc:oracle:thin:@" + PreferencesHandler.getDbServer() + ":" + PreferencesHandler.getDbPort() + ":" + PreferencesHandler.getDbName(); Connection con = DriverManager.getConnection( connectionString, PreferencesHandler.getTm_czUser(), PreferencesHandler.getTm_czPwd()); String sql = "{call i2b2_mrna_index_maint(?)}"; CallableStatement call = con.prepareCall(sql); call.setString(1, "DROP"); call.execute(); con.close(); System.out.println("Indexes dropped"); } job.start(); job.waitUntilFinished(); System.out.println("Job finished"); if (loadDataUI.getIndexes()) { // add indexes String connectionString = "jdbc:postgresql://" + PreferencesHandler.getDbServer() + ":" + PreferencesHandler.getDbPort() + "/" + PreferencesHandler.getDbName(); Connection con = DriverManager.getConnection( connectionString, PreferencesHandler.getTm_czUser(), PreferencesHandler.getTm_czPwd()); String sql = "{call i2b2_mrna_index_maint(?)}"; CallableStatement call = con.prepareCall(sql); call.setString(1, "ADD"); call.execute(); con.close(); System.out.println("Indexes added"); } @SuppressWarnings("unused") Result result = job.getResult(); Display.getDefault() .asyncExec( new Runnable() { public void run() { loadDataUI.displayMessage( "Loading process is over.\n Please check monitoring step."); } }); Log4jBufferAppender appender = CentralLogStore.getAppender(); String logText = appender.getBuffer(job.getLogChannelId(), false).toString(); Pattern pattern = Pattern.compile( ".*Finished job entry \\[run i2b2_process_mrna_data\\].*", Pattern.DOTALL); Matcher matcher = pattern.matcher(logText); if (matcher.matches()) { String connectionString = "jdbc:postgresql://" + PreferencesHandler.getDbServer() + ":" + PreferencesHandler.getDbPort() + "/" + PreferencesHandler.getDbName(); Connection con = DriverManager.getConnection( connectionString, PreferencesHandler.getTm_czUser(), PreferencesHandler.getTm_czPwd()); Statement stmt = con.createStatement(); // remove rows for this study before adding new ones ResultSet rs = stmt.executeQuery( "select max(JOB_ID) from CZ_JOB_AUDIT where STEP_DESC='Starting i2b2_process_mrna_data'"); int jobId; if (rs.next()) { jobId = rs.getInt(1); } else { con.close(); loadDataUI.setIsLoading(false); return; } logText += "\nOracle job id:\n" + String.valueOf(jobId); con.close(); } writeLog(logText); CentralLogStore.discardLines(job.getLogChannelId(), false); } catch (Exception e1) { // this.write(e1.getMessage()); messageException = e1.getLocalizedMessage(); Display.getDefault() .asyncExec( new Runnable() { public void run() { loadDataUI.displayMessage("Error: " + messageException); } }); loadDataUI.setIsLoading(false); e1.printStackTrace(); } loadDataUI.setIsLoading(false); } }.start(); this.loadDataUI.waitForThread(); WorkPart.updateSteps(); WorkPart.addFiles(this.dataType); }
@Override public void handleEvent(Event event) { Vector<File> rawFiles = ((ClinicalData) this.dataType).getRawFiles(); Vector<String> siteIds = this.setOtherIdsUI.getSiteIds(); Vector<String> visitNames = this.setOtherIdsUI.getVisitNames(); // write in a new file File file = new File( this.dataType.getPath().toString() + File.separator + this.dataType.getStudy().toString() + ".columns.tmp"); try { FileWriter fw = new FileWriter(file); BufferedWriter out = new BufferedWriter(fw); out.write( "Filename\tCategory Code\tColumn Number\tData Label\tData Label Source\tControlled Vocab Code\n"); for (int i = 0; i < rawFiles.size(); i++) { // site identifier if (siteIds.elementAt(i).compareTo("") != 0) { int columnNumber = FileHandler.getHeaderNumber(rawFiles.elementAt(i), siteIds.elementAt(i)); if (columnNumber != -1) { out.write(rawFiles.elementAt(i).getName() + "\t\t" + columnNumber + "\tSITE_ID\t\t\n"); } } // visit name if (visitNames.elementAt(i).compareTo("") != 0) { int columnNumber = FileHandler.getHeaderNumber(rawFiles.elementAt(i), visitNames.elementAt(i)); if (columnNumber != -1) { out.write( rawFiles.elementAt(i).getName() + "\t\t" + columnNumber + "\tVISIT_NAME\t\t\n"); } } } // add lines from existing CMF try { BufferedReader br = new BufferedReader(new FileReader(((ClinicalData) this.dataType).getCMF())); String line = br.readLine(); while ((line = br.readLine()) != null) { String[] s = line.split("\t", -1); if (s[3].compareTo("SITE_ID") != 0 && s[3].compareTo("VISIT_NAME") != 0) { out.write(line + "\n"); } } br.close(); } catch (Exception e) { this.setOtherIdsUI.displayMessage("Error: " + e.getLocalizedMessage()); e.printStackTrace(); out.close(); } out.close(); try { String fileName = ((ClinicalData) this.dataType).getCMF().getName(); ((ClinicalData) this.dataType).getCMF().delete(); File fileDest = new File(this.dataType.getPath() + File.separator + fileName); FileUtils.moveFile(file, fileDest); ((ClinicalData) this.dataType).setCMF(fileDest); } catch (IOException ioe) { this.setOtherIdsUI.displayMessage("File error: " + ioe.getLocalizedMessage()); return; } } catch (Exception e) { this.setOtherIdsUI.displayMessage("Error: " + e.getLocalizedMessage()); e.printStackTrace(); } this.setOtherIdsUI.displayMessage("Column mapping file updated"); WorkPart.updateSteps(); WorkPart.updateFiles(); UsedFilesPart.sendFilesChanged(dataType); }
@Override public Composite createUI(Composite parent) { this.display = WorkPart.display(); Shell shell = new Shell(this.display); shell.setSize(50, 100); GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 1; shell.setLayout(gridLayout); ProgressBar pb = new ProgressBar(shell, SWT.HORIZONTAL | SWT.INDETERMINATE); pb.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Label searching = new Label(shell, SWT.NONE); searching.setText("Searching..."); shell.open(); this.isSearching = true; new Thread() { public void run() { testTm_cz = RetrieveData.testTm_czConnection(); testTm_lz = RetrieveData.testTm_lzConnection(); testDeapp = RetrieveData.testDeappConnection(); root = new TreeNode("Dataset explorer", null, false); studyTree = new StudyTree(root); topNodeController = new TopNodeController(root, dataType, studyTree); root = topNodeController.buildTree(); topNode = dataType.getStudy().getTopNode(); isSearching = false; } }.start(); this.display = WorkPart.display(); while (this.isSearching) { if (!display.readAndDispatch()) { display.sleep(); } } shell.close(); Composite composite = new Composite(parent, SWT.NONE); GridLayout gd = new GridLayout(); gd.numColumns = 1; gd.horizontalSpacing = 0; gd.verticalSpacing = 0; composite.setLayout(gd); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); ScrolledComposite scroller = new ScrolledComposite(composite, SWT.H_SCROLL | SWT.V_SCROLL); scroller.setLayoutData(new GridData(GridData.FILL_BOTH)); gd = new GridLayout(); gd.numColumns = 1; gd.horizontalSpacing = 0; gd.verticalSpacing = 0; scroller.setLayout(gd); scroller.setLayoutData(new GridData(GridData.FILL_BOTH)); Composite scrolledComposite = new Composite(scroller, SWT.NONE); scroller.setContent(scrolledComposite); GridLayout layout = new GridLayout(); layout.numColumns = 1; layout.verticalSpacing = 10; scrolledComposite.setLayout(layout); scrolledComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); this.topNode = this.dataType.getStudy().getTopNode(); if (topNode != null && topNode.compareTo("") != 0) { viewer = new TreeViewer(scrolledComposite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL); viewer.setContentProvider(new StudyContentProvider()); viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); viewer.setInput(this.studyTree); GridData gridData = new GridData(GridData.FILL_BOTH); gridData.horizontalAlignment = SWT.FILL; gridData.verticalAlignment = SWT.FILL; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; gridData.heightHint = 300; gridData.widthHint = 250; this.viewer.getControl().setLayoutData(gridData); viewer.setLabelProvider( new ColumnLabelProvider() { @Override public String getText(Object element) { return element.toString(); } @Override public Color getBackground(Object element) { if (((TreeNode) element).isStudyRoot()) { return new Color(Display.getCurrent(), 237, 91, 67); } if (((TreeNode) element).isLabel()) { return new Color(Display.getCurrent(), 212, 212, 212); } return null; } }); securityButton = new Button(scrolledComposite, SWT.CHECK); securityButton.setText("Security required"); securityButton.addListener( SWT.Selection, new Listener() { @Override public void handleEvent(Event event) { security = securityButton.getSelection(); } }); /*indexesButton=new Button(scrolledComposite, SWT.CHECK); indexesButton.setText("Turn off the indexes during loaded (only for large datasets)"); indexesButton.addListener(SWT.Selection, new Listener(){ @Override public void handleEvent(Event event) { indexes=indexesButton.getSelection(); } })*/ ; } else { Label label = new Label(scrolledComposite, SWT.NONE); label.setText("Please first choose a study node in the description data type"); } Button button = new Button(scrolledComposite, SWT.PUSH); button.setText("Load"); if (topNode != null && topNode.compareTo("") != 0) { if (this.testTm_cz && this.testTm_lz && this.testDeapp) { button.addListener(SWT.Selection, new LoadGeneExpressionDataListener(this, this.dataType)); Label dbLabel = new Label(scrolledComposite, SWT.NONE); dbLabel.setText("You are connected to database '" + PreferencesHandler.getDb() + "'"); } else { button.setEnabled(false); Label warn = new Label(scrolledComposite, SWT.NONE); warn.setText("Warning: connection to database is not possible"); } } else { button.setEnabled(false); } scrolledComposite.setSize(scrolledComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT)); return composite; }
@Override public void handleEvent(Event event) { this.selectRawFilesUI.openLoadingShell(); new Thread() { public void run() { String[] paths = selectRawFilesUI.getPath().split(File.pathSeparator, -1); for (int i = 0; i < paths.length; i++) { String path = paths[i]; if (path == null) { selectRawFilesUI.setIsLoading(false); return; } File rawFile = new File(path); if (rawFile.exists()) { if (rawFile.isFile()) { if (path.contains("%")) { selectRawFilesUI.setMessage("File name can not contain percent ('%') symbol."); selectRawFilesUI.setIsLoading(false); return; } String newPath = dataType.getPath().getAbsolutePath() + File.separator + rawFile.getName(); if (selectRawFilesUI.getFormat().compareTo("Tab delimited raw file") != 0 && selectRawFilesUI.getFormat().compareTo("SOFT") != 0) { selectRawFilesUI.setMessage("File format does not exist"); selectRawFilesUI.setIsLoading(false); return; } if (selectRawFilesUI.getFormat().compareTo("SOFT") == 0) { File newFile = new File(newPath); if (newFile.exists()) { selectRawFilesUI.setMessage("File has already been added"); selectRawFilesUI.setIsLoading(false); return; } else { if (createTabFileFromSoft(rawFile, newFile)) { ((ClinicalData) dataType).addRawFile(newFile); selectRawFilesUI.setMessage("File has been added"); } } } else if (selectRawFilesUI.getFormat().compareTo("Tab delimited raw file") == 0) { if (!checkTabFormat(rawFile)) { selectRawFilesUI.setIsLoading(false); return; } File copiedRawFile = new File(newPath); if (!copiedRawFile.exists()) { try { FileUtils.copyFile(rawFile, copiedRawFile); ((ClinicalData) dataType).addRawFile(copiedRawFile); selectRawFilesUI.setMessage("File has been added"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); selectRawFilesUI.setMessage("File error: " + e.getLocalizedMessage()); selectRawFilesUI.setIsLoading(false); return; } } else { selectRawFilesUI.setMessage("File has already been added"); selectRawFilesUI.setIsLoading(false); return; } } } else { selectRawFilesUI.setMessage("File is a directory"); selectRawFilesUI.setIsLoading(false); return; } } else { selectRawFilesUI.setMessage("Path does no exist"); selectRawFilesUI.setIsLoading(false); return; } } selectRawFilesUI.setIsLoading(false); } }.start(); this.selectRawFilesUI.waitForThread(); selectRawFilesUI.updateViewer(); WorkPart.updateSteps(); UsedFilesPart.sendFilesChanged(dataType); }