List of usage examples for com.vaadin.server ThemeResource ThemeResource
public ThemeResource(String resourceId)
From source file:de.uni_tuebingen.qbic.qbicmainportlet.DatasetViewFilterDecorator.java
License:Open Source License
@Override public Resource getBooleanFilterIcon(Object propertyId, boolean value) { if ("validated".equals(propertyId)) { return value ? new ThemeResource("../runo/icons/16/ok.png") : new ThemeResource("../runo/icons/16/cancel.png"); }/* www. j a va2 s .c o m*/ return null; }
From source file:de.uni_tuebingen.qbic.qbicmainportlet.QbicmainportletUI.java
License:Open Source License
/** * builds page if user is not logged in/*from www. j ava 2s .c om*/ */ private void buildNotLoggedinLayout() { // Mail to qbic ExternalResource resource = new ExternalResource("mailto:info@qbic.uni-tuebingen.de"); Link mailToQbicLink = new Link("", resource); mailToQbicLink.setIcon(new ThemeResource("mail9.png")); ThemeDisplay themedisplay = (ThemeDisplay) VaadinService.getCurrentRequest() .getAttribute(WebKeys.THEME_DISPLAY); // redirect to liferay login page Link loginPortalLink = new Link("", new ExternalResource(themedisplay.getURLSignIn())); loginPortalLink.setIcon(new ThemeResource("lock12.png")); // left part of the page VerticalLayout signIn = new VerticalLayout(); signIn.addComponent( new Label("<h3>Sign in to manage your projects and access your data:</h3>", ContentMode.HTML)); signIn.addComponent(loginPortalLink); signIn.setStyleName("no-user-login"); // right part of the page VerticalLayout contact = new VerticalLayout(); contact.addComponent( new Label("<h3>If you are interested in doing projects get in contact:</h3>", ContentMode.HTML)); contact.addComponent(mailToQbicLink); contact.setStyleName("no-user-login"); // build final layout, with some gaps between HorizontalLayout notSignedInLayout = new HorizontalLayout(); Label expandingGap1 = new Label(); expandingGap1.setWidth("100%"); notSignedInLayout.addComponent(expandingGap1); notSignedInLayout.addComponent(signIn); notSignedInLayout.addComponent(contact); notSignedInLayout.setExpandRatio(expandingGap1, 0.16f); notSignedInLayout.setExpandRatio(signIn, 0.36f); notSignedInLayout.setExpandRatio(contact, 0.36f); notSignedInLayout.setWidth("100%"); notSignedInLayout.setSpacing(true); setContent(notSignedInLayout); }
From source file:de.uni_tuebingen.qbic.qbicmainportlet.ToolBar.java
License:Open Source License
void init() { // setWidth(100.0f, Unit.PERCENTAGE); // addStyleName("user-menu"); // setWidth((UI.getCurrent().getPage().getBrowserWindowWidth() * 0.6f), Unit.PIXELS); MenuBar menuBar = new MenuBar(); menuBar.addStyleName("user-menu"); menuBar.setHtmlContentAllowed(true); download = menuBar.addItem("Download your data", null, null); download.setEnabled(false);//from w ww . j a v a 2 s. com download.setIcon(new ThemeResource("computer_higher.png")); download.addSeparator(); this.downloadwhole = download.addItem("<a href=\"" + resourceUrl + "\" target=\"_blank\" style=\"text-decoration: none ; color:#2c2f34\">Download everything belonging to this entity.</a>", null); this.downloadwhole.setEnabled(false); // Open DatasetView this.datasetoverview = download.addItem("Dataset Overview", null); this.datasetoverview.setEnabled(false); manage = menuBar.addItem("Manage your data", null, null); manage.setIcon(new ThemeResource("barcode_higher.png")); manage.setEnabled(false); // Another submenu item with a sub-submenu this.createBarcodes = manage.addItem("Create Barcodes", null, null); createBarcodes.setEnabled(false); workflows = menuBar.addItem("Run workflows", null, null); workflows.setIcon(new ThemeResource("dna_higher.png")); workflows.setEnabled(false); addComponent(menuBar); // menuBar.setWidth((UI.getCurrent().getPage().getBrowserWindowWidth() * 0.3f), Unit.PIXELS); // searchEngineView.setWidth((UI.getCurrent().getPage().getBrowserWindowWidth() * 0.2f), // Unit.PIXELS); // searchEngineView.setWidth("100%"); addComponent(searchEngineView); setComponentAlignment(searchEngineView, Alignment.TOP_RIGHT); // setExpandRatio(menuBar, 0.7f); // setExpandRatio(searchEngineView, 0.3f); }
From source file:edu.cornell.qatarmed.planrnaseq.BrowseAndAnnotate.java
private void initDataAndSubcomponent() { //<editor-fold defaultstate="collapsed" desc="populating project/study summary table"> rnaseqContainer = createMySQLContainer("study_summary", "dummy"); bioprojectSummaryTable.setContainerDataSource(rnaseqContainer); // bioprojectSummaryTable.setVisibleColumns(new String[] { studyName }); bioprojectSummaryTable.setCurrentPageFirstItemIndex(300); bioprojectSummaryTable.setSelectable(true); bioprojectSummaryTable.setImmediate(true); bioprojectSummaryTable.setColumnReorderingAllowed(true); bioprojectSummaryTable.setSortEnabled(true); bioprojectSummaryTable.setVisibleColumns( new Object[] { "Study", "title", "Numsample", "Numexp", "Numrun", "Avgspots", "avgbases", "name" }); //bioprojectSummaryTable.setVisibleColumns(new Object[] { "firstName", "lastName", "department", "phoneNumber", "street", "city", "zipCode" }); studyName.setValue(rnaseqContainer.firstItemId().toString()); bioprojectSummaryTable.setCellStyleGenerator(new Table.CellStyleGenerator() { @Override//from ww w . j av a 2s. c o m public String getStyle(Table table, Object itemId, Object propertyId) { String mynullreturn = ""; if (propertyId == null) { // Styling for row // Item item = bioprojectSummaryTable.getItem(itemId); Item item = table.getItem(itemId); String annotatus_status = ""; if (item == null) { // checking this is important in lazy loading table. Otherwise it produces null pointer exception while scrolling down the table. // System.out.println("It's null"); return mynullreturn; } else { if (item.getItemProperty("annotation_status").getValue() != null) { annotatus_status = (String) item.getItemProperty("annotation_status").getValue(); } } // String annotatus_status = (String) item.getItemProperty("annotation_status").getValue(); if (annotatus_status.toLowerCase().startsWith("ongoing")) { // System.out.println(annotatus_status); return "highlight-orange"; } else if (annotatus_status.toLowerCase().startsWith("completed")) { return "highlight-green"; } else { return mynullreturn; } } else { // styling for column propertyId return mynullreturn; } } }); //</editor-fold> //<editor-fold defaultstate="collapsed" desc="Upon clicking any project from the project/study summary table"> bioprojectSummaryTable.addItemClickListener(new ItemClickEvent.ItemClickListener() { int custom_annotation_counter = 0; public void itemClick(ItemClickEvent event) { rightTopTabsheet.setSelectedTab(rightTopForm); //<editor-fold defaultstate="collapsed" desc="filling study details on right panel"> Object selectedStudyObject = event.getItemId(); bioprojectSummaryTable.select(selectedStudyObject); tree.removeAllItems(); rightTopForm.removeAllComponents(); rightTopAnnotationForm.removeAllComponents(); myform.removeAllComponents(); String selectedStudy = selectedStudyObject.toString(); String studyTitle = (String) bioprojectSummaryTable .getContainerProperty(selectedStudyObject, "title").getValue(); String studyName = (String) bioprojectSummaryTable.getContainerProperty(selectedStudyObject, "name") .getValue(); String studyNumsample = String.valueOf( bioprojectSummaryTable.getContainerProperty(selectedStudyObject, "Numsample").getValue()); String studyNumexp = String.valueOf( bioprojectSummaryTable.getContainerProperty(selectedStudyObject, "Numexp").getValue()); String studyNumrun = String.valueOf( bioprojectSummaryTable.getContainerProperty(selectedStudyObject, "Numrun").getValue()); String studyAvgspots = String.valueOf( bioprojectSummaryTable.getContainerProperty(selectedStudyObject, "Avgspots").getValue()); String studyAvgbases = String.valueOf( bioprojectSummaryTable.getContainerProperty(selectedStudyObject, "avgbases").getValue()); tree.addItem(selectedStudy); tree.setItemCaption(selectedStudy, "Study: " + selectedStudy); SQLContainer tempContainer = createMySQLContainer("study_extdb", selectedStudy); // In this table I will chaeck for the manual annotation status String extdbid = tempContainer.getItem(tempContainer.getIdByIndex(0)).getItemProperty("extdb") .getValue().toString(); HorizontalLayout studyAccLinkLayout = new HorizontalLayout(); Label labelStudyAcc = new Label( "<b>SRA Study Accession : </b>" + selectedStudy + " ", ContentMode.HTML); String ncbi_sra_study_link = "http://www.ncbi.nlm.nih.gov/Traces/sra/?study=" + selectedStudy; Link link = new Link("NCBI SRA Link", new ExternalResource(ncbi_sra_study_link)); // Open the URL in a new window/tab link.setTargetName("_blank"); // Indicate visually that it opens in a new window/tab link.setIcon(new ThemeResource("icons/external-link.png")); link.addStyleName("icon-after-caption"); studyAccLinkLayout.addComponent(labelStudyAcc); studyAccLinkLayout.addComponent(link); rightTopForm.addComponent(studyAccLinkLayout); Label labelStudyTitle = new Label("<b>Study Title: </b>" + studyTitle, ContentMode.HTML); rightTopForm.addComponent(labelStudyTitle); Label labelStudyName = new Label("<b>Study Name: </b>" + studyName, ContentMode.HTML); rightTopForm.addComponent(labelStudyName); tempContainer = null; tempContainer = createMySQLContainer("study_abstracts", selectedStudy); // In this table I will chaeck for the manual annotation status if (tempContainer.size() > 0) { Item tempItem = tempContainer.getItem(tempContainer.getIdByIndex(0)); if (!(tempItem.getItemProperty("abstract").getValue() == null)) { String abstr = tempItem.getItemProperty("abstract").getValue().toString(); String xref = tempItem.getItemProperty("xref").getValue().toString(); if (abstr.length() > 3) { Label labelStudyAbstract = new Label("<b>Abstract: </b>" + abstr, ContentMode.HTML); rightTopForm.addComponent(labelStudyAbstract); } if ((xref.length() > 3) & (xref.contains("pubmed"))) { HorizontalLayout pubLinkLayout = new HorizontalLayout(); Label labelPubmed = new Label("<b>Pubmed Id : </b>" + " ", ContentMode.HTML); pubLinkLayout.addComponent(labelPubmed); String[] pub = xref.split("\\|"); if (pub.length > 0) { for (String p : pub) { String[] pid = p.split("\\:-"); if (pid[0].startsWith("pubmed")) { Label tempPubLabel = new Label(" ", ContentMode.HTML); String pubmed_link = "http://www.ncbi.nlm.nih.gov/pubmed/" + pid[1]; Link linkpub = new Link(pid[1], new ExternalResource(pubmed_link)); linkpub.setTargetName("_blank"); linkpub.setIcon(new ThemeResource("icons/external-link.png")); linkpub.addStyleName("icon-after-caption"); pubLinkLayout.addComponent(tempPubLabel); pubLinkLayout.addComponent(linkpub); } } } rightTopForm.addComponent(pubLinkLayout); } } } Label labelStudyNumsample = new Label("<b>Total number of samples: </b>" + studyNumsample, ContentMode.HTML); rightTopForm.addComponent(labelStudyNumsample); Label labelStudyNumexp = new Label( "<b>Total number of experiments (each experiment uses any one of the samples): </b>" + studyNumexp, ContentMode.HTML); rightTopForm.addComponent(labelStudyNumexp); Label labelStudyNumrun = new Label( "<b>Total number of runs ( an experiment can have multiple runs) : </b>" + studyNumrun, ContentMode.HTML); rightTopForm.addComponent(labelStudyNumrun); Label labelStudyAvgspots = new Label( "<b>Avg number of spots or reads (per run): </b>" + studyAvgspots, ContentMode.HTML); rightTopForm.addComponent(labelStudyAvgspots); Label labelStudyAvgbases = new Label("<b>Avg number of bases (per run): </b>" + studyAvgbases, ContentMode.HTML); rightTopForm.addComponent(labelStudyAvgbases); if (extdbid.startsWith("PRJ")) { //<editor-fold defaultstate="collapsed" desc="if PRJ"> tempContainer = createMySQLContainer("bioproject_details", extdbid); String bioproject_accession = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("BioprojectAccession").getValue().toString(); String bioproject_id = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("BioprojectId").getValue().toString(); String bioproject_name = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("Name").getValue().toString(); String bioproject_title = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("Title").getValue().toString(); String bioproject_description = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("Description").getValue().toString(); String bioproject_capture = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("Capture").getValue().toString(); String bioproject_material = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("Material").getValue().toString(); String bioproject_method = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("MethodType").getValue().toString(); String bioproject_datatype = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("DataType").getValue().toString(); String bioproject_sampleScope = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("SampleScope").getValue().toString(); System.out.println(bioproject_description); Label labelBioprojectAccession = new Label( "<b>Bioproject Accession : </b>" + bioproject_accession, ContentMode.HTML); rightTopForm.addComponent(labelBioprojectAccession); Label labelBioprojectId = new Label("<b>Bioproject Id : </b>" + bioproject_id, ContentMode.HTML); rightTopForm.addComponent(labelBioprojectId); Label labelBioprojectTitle = new Label("<b>Bioproject Title : </b>" + bioproject_title, ContentMode.HTML); rightTopForm.addComponent(labelBioprojectTitle); Label labelBioprojectName = new Label("<b>Bioproject Name : </b>" + bioproject_name, ContentMode.HTML); rightTopForm.addComponent(labelBioprojectName); Label labelBioprojectDescription = new Label( "<b>Bioproject Description : </b>" + bioproject_description, ContentMode.HTML); rightTopForm.addComponent(labelBioprojectDescription); Label labelBioprojectCapture = new Label("<b>Bioproject Capture : </b>" + bioproject_capture, ContentMode.HTML); rightTopForm.addComponent(labelBioprojectCapture); Label labelBioprojectMaterial = new Label( "<b>Bioproject Material : </b>" + bioproject_material, ContentMode.HTML); rightTopForm.addComponent(labelBioprojectMaterial); Label labelBioprojectMethod = new Label("<b>Bioproject Method : </b>" + bioproject_method, ContentMode.HTML); rightTopForm.addComponent(labelBioprojectMethod); Label labelBioprojectDatatype = new Label( "<b>Bioproject Data Type : </b>" + bioproject_datatype, ContentMode.HTML); rightTopForm.addComponent(labelBioprojectDatatype); Label labelBioprojectSampleScope = new Label( "<b>Bioproject Sample Scope : </b>" + bioproject_sampleScope, ContentMode.HTML); rightTopForm.addComponent(labelBioprojectSampleScope); //</editor-fold> } if (extdbid.startsWith("GSE")) { //<editor-fold defaultstate="collapsed" desc="if GSE"> tempContainer = createMySQLContainer("study_gse_details", extdbid); String gse_accesion = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("gse").getValue().toString(); String gse_summary = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("summary").getValue().toString(); String gse_design = tempContainer.getItem(tempContainer.getIdByIndex(0)) .getItemProperty("overall_design").getValue().toString(); // System.out.println(gse_summary); Label labelGSE = new Label("<b>GEO Series Accession : </b>" + gse_accesion, ContentMode.HTML); rightTopForm.addComponent(labelGSE); Label labelGseSummary = new Label("<b>GSE Summary : </b>" + gse_summary, ContentMode.HTML); rightTopForm.addComponent(labelGseSummary); Label labelGseDesign = new Label("<b>GSE Design : </b>" + gse_design, ContentMode.HTML); rightTopForm.addComponent(labelGseDesign); //</editor-fold> } try { String search_query = " SELECT * FROM manual_annotation " + "where annotation_status = 'completed' " + " AND studyid = '" + selectedStudy + "'"; rnaseqContainer = createMySQLContainer("suggestion_by_manual_annotation", search_query); if (rnaseqContainer.getItemIds().size() > 0) { Label ManualAnnotationLabelStart = new Label("<b>Manual Annotaion </b>", ContentMode.HTML); rightTopForm.addComponent(ManualAnnotationLabelStart); for (int i = 0; i < rnaseqContainer.getItemIds().size(); i++) { Item tempItem = rnaseqContainer.getItem(rnaseqContainer.getIdByIndex(i)); int annotation_count = i + 1; String stringManualAnnotationDetails = "------------ Manual Annotaion " + annotation_count + " ------------"; System.out.println("Item is " + tempItem); if (!(tempItem.getItemProperty("isDisease").getValue() == null)) { if (tempItem.getItemProperty("isDisease").getValue().toString().equals("1")) { stringManualAnnotationDetails = stringManualAnnotationDetails + "<br></br> Disease = Yes "; } } String stringStudyTypes = ""; if (!(tempItem.getItemProperty("isCaseControl").getValue() == null)) { if (tempItem.getItemProperty("isCaseControl").getValue().toString().equals("1")) { stringStudyTypes = stringStudyTypes + "<br> Case-Control = Yes "; } } if (!(tempItem.getItemProperty("isTimeSeries").getValue() == null)) { if (tempItem.getItemProperty("isTimeSeries").getValue().toString().equals("1")) { stringStudyTypes = stringStudyTypes + "<br> Time Series = Yes "; } } if (!(tempItem.getItemProperty("isTreatment").getValue() == null)) { if (tempItem.getItemProperty("isTreatment").getValue().toString().equals("1")) { stringStudyTypes = stringStudyTypes + "<br> Treatment = Yes "; } } if (stringStudyTypes.length() > 2) { stringManualAnnotationDetails = stringManualAnnotationDetails + "<br></br> <i> **** Study Types ****</i> " + stringStudyTypes; } String stringSampleTypes = ""; if (!(tempItem.getItemProperty("isCellLine").getValue() == null)) { if (tempItem.getItemProperty("isCellLine").getValue().toString().equals("1")) { stringSampleTypes = stringSampleTypes + "<br> Cell Line = Yes "; } } if (!(tempItem.getItemProperty("isPrimaryCells").getValue() == null)) { if (tempItem.getItemProperty("isPrimaryCells").getValue().toString().equals("1")) { stringSampleTypes = stringSampleTypes + "<br> Primary Cells = Yes "; } } if (!(tempItem.getItemProperty("isTissue").getValue() == null)) { if (tempItem.getItemProperty("isTissue").getValue().toString().equals("1")) { stringSampleTypes = stringSampleTypes + "<br> Tissue = Yes "; } } if (!(tempItem.getItemProperty("isWholeBlood").getValue() == null)) { if (tempItem.getItemProperty("isWholeBlood").getValue().toString().equals("1")) { stringSampleTypes = stringSampleTypes + "<br> Blood = Yes "; } } if (!(tempItem.getItemProperty("isPlasma").getValue() == null)) { if (tempItem.getItemProperty("isPlasma").getValue().toString().equals("1")) { stringSampleTypes = stringSampleTypes + "<br> Plasma = Yes "; } } if (stringSampleTypes.length() > 2) { stringManualAnnotationDetails = stringManualAnnotationDetails + "<br></br> <i>**** Sample Types ****</i> " + stringSampleTypes; } if (!(tempItem.getItemProperty("sequencing_platform").getValue() == null)) { String sequencing_platform = tempItem.getItemProperty("sequencing_platform") .getValue().toString(); String[] annotated_platforms = sequencing_platform.split("\\;"); stringManualAnnotationDetails = stringManualAnnotationDetails + "<br></br> Sequencing Platform = " + sequencing_platform; } if (!(tempItem.getItemProperty("replicate_type").getValue() == null)) { String replicate_type = tempItem.getItemProperty("replicate_type").getValue() .toString(); stringManualAnnotationDetails = stringManualAnnotationDetails + "<br></br> Replicate Type = " + replicate_type; } if (!(tempItem.getItemProperty("disease_category").getValue() == null)) { String annotated_disease_category = tempItem.getItemProperty("disease_category") .getValue().toString(); String[] annotated_disease_categories = annotated_disease_category.split("\\;"); String string_disease_cat = ""; for (String cat : annotated_disease_categories) { if (cat.startsWith("complex_disease")) { String[] cat_parts = cat.split("\\|"); if (string_disease_cat.contains("complex_disease")) { string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(50) + " ---- " + cat_parts[1]; string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(57) + " ---- " + cat_parts[2]; } else { string_disease_cat = string_disease_cat + " Complex Disease "; string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(50) + " ---- " + cat_parts[1]; string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(57) + " ---- " + cat_parts[2]; } } if (cat.startsWith("rare_disease")) { String[] cat_parts = cat.split("\\|"); if (string_disease_cat.contains("rare_disease")) { string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(50) + " ---- " + cat_parts[1]; string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(57) + " ---- " + cat_parts[2]; } else { if (string_disease_cat.contains("complex_disease")) { string_disease_cat = string_disease_cat + "<br> "; } else { string_disease_cat = string_disease_cat + " Rare Disease "; } string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(50) + " ---- " + cat_parts[1]; string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(57) + " ---- " + cat_parts[2]; } } if (cat.startsWith("other_disease")) { String[] cat_parts = cat.split("\\|"); if (string_disease_cat.contains("other_disease")) { string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(50) + " ---- " + cat_parts[1]; string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(57) + " ---- " + cat_parts[2]; } else { if (string_disease_cat.contains("complex_disease") || string_disease_cat.contains("rare_disease")) { string_disease_cat = string_disease_cat + "<br> "; } else { string_disease_cat = string_disease_cat + " Other Disease "; } string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(50) + " ---- " + cat_parts[1]; string_disease_cat = string_disease_cat + "<br> " + createHTMLspaces(57) + " ---- " + cat_parts[2]; } } } stringManualAnnotationDetails = stringManualAnnotationDetails + "<br></br> Disease Category = " + string_disease_cat; } if (!(tempItem.getItemProperty("annotator").getValue() == null)) { String annotator = tempItem.getItemProperty("annotator").getValue().toString(); stringManualAnnotationDetails = stringManualAnnotationDetails + "<br></br> Annotator = " + annotator; } stringManualAnnotationDetails = stringManualAnnotationDetails + "<br></br>-----------------------------------"; Label tempManualAnnotationDetails = new Label(stringManualAnnotationDetails, ContentMode.HTML); rightTopForm.addComponent(tempManualAnnotationDetails); } // Label ManualAnnotationLabelEnd = new Label("<b>Manual Annotaion </b>", ContentMode.HTML); // rightTopForm.addComponent(ManualAnnotationLabelEnd); } } catch (Exception e) { } //</editor-fold> //SQLContainer tempContainer = createMySQLContainer("sra_rnaseq", selectedStudy); tempContainer = createMySQLContainer("sra_rnaseq", selectedStudy); // List<String> list = new ArrayList<String>(); Map expMap = new HashMap(); Map<String, String[]> expDetailMap = new HashMap<>(); Map<String, String[]> platformMap = new HashMap<>(); Map runMap = new HashMap(); HashSet<String> biosampleSet = new HashSet<>(); for (int i = 0; i < tempContainer.getItemIds().size(); i++) { //<editor-fold defaultstate="collapsed" desc="for loop"> String docid = tempContainer.getIdByIndex(i).toString(); String biosample = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Biosample_Acc_Id_SampleId").getValue().toString(); biosampleSet.add(biosample); String[] b_parts = biosample.split("\\|"); String exp = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Experiment_Acc_Ver_Status_Name").getValue().toString(); String[] exp_parts = exp.split("\\|"); String exp_acc = exp_parts[0]; expMap.put(exp_acc, b_parts[0]); expDetailMap.put(exp_acc, exp_parts); String sra_plaforms = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Platform_InstrumentModel").getValue().toString(); String[] sra_plaforms_parts = sra_plaforms.split("\\|"); platformMap.put(exp_acc, sra_plaforms_parts); String run = tempContainer.getItem(tempContainer.getIdByIndex(i)).getItemProperty("Runs") .getValue().toString(); String[] run_parts = run.split("\\|"); if (run_parts.length > 0) { for (int j = 0; j < run_parts.length; j++) { String temprun = run_parts[j]; String[] temprun_parts = temprun.split("\\,"); runMap.put(temprun_parts[0], exp_acc); } } //</editor-fold> } //<editor-fold defaultstate="collapsed" desc="Manual Annotaion"> tempContainer = createMySQLContainer("biosample_with_studyacc", selectedStudy); int count_cell_line = 0; int count_organism_part = 0; int count_tissue = 0; int count_disease = 0; Set<String> cell_lines_set = new HashSet(); Set<String> organism_part_set = new HashSet(); Set<String> tissue_set = new HashSet(); Set<String> disease_set = new HashSet(); Map<String, Integer> cell_line_stat_map = new HashMap<>(); Map<String, Integer> organism_part_stat_map = new HashMap<>(); Map<String, Integer> tissue_stat_map = new HashMap<>(); Map<String, Integer> disease_stat_map = new HashMap<>(); for (int i = 0; i < tempContainer.getItemIds().size(); i++) { //<editor-fold defaultstate="collapsed" desc="for biosample attributes"> String biosample_attr = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Attributes").getValue().toString(); String[] biosample_attr_parts = biosample_attr.split("\\:-"); if (biosample_attr_parts.length > 0) { String[] attr_names = biosample_attr_parts[0].split("\\|"); String[] attr_values = new String[] {}; if (biosample_attr_parts.length > 1) { attr_values = biosample_attr_parts[1].split("\\|"); } int atn_index = 0; for (String atn : attr_names) { if (atn.equalsIgnoreCase("cell line")) { count_cell_line = count_cell_line + 1; if (attr_values.length >= atn_index) { String cell_line_value = attr_values[atn_index]; cell_lines_set.add(cell_line_value); if (cell_line_stat_map.containsKey(cell_line_value)) { cell_line_stat_map.put(cell_line_value, cell_line_stat_map.get(cell_line_value) + 1); } else { cell_line_stat_map.put(cell_line_value, 1); } } } if (atn.equalsIgnoreCase("organism part")) { count_organism_part = count_organism_part + 1; if (attr_values.length >= atn_index) { String organism_part_value = attr_values[atn_index]; organism_part_set.add(organism_part_value); if (organism_part_stat_map.containsKey(organism_part_value)) { organism_part_stat_map.put(organism_part_value, organism_part_stat_map.get(organism_part_value) + 1); } else { organism_part_stat_map.put(organism_part_value, 1); } } } if (atn.contains("disease")) { count_disease = count_disease + 1; if (attr_values.length >= atn_index) { String disease_value = attr_values[atn_index]; disease_set.add(disease_value); if (disease_stat_map.containsKey(disease_value)) { disease_stat_map.put(disease_value, disease_stat_map.get(disease_value) + 1); } else { disease_stat_map.put(disease_value, 1); } } } if (atn.equalsIgnoreCase("tissue")) { count_tissue = count_tissue + 1; if (attr_values.length >= atn_index) { String tissue_value = attr_values[atn_index]; tissue_set.add(tissue_value); if (tissue_stat_map.containsKey(tissue_value)) { tissue_stat_map.put(tissue_value, tissue_stat_map.get(tissue_value) + 1); } else { tissue_stat_map.put(tissue_value, 1); } } } atn_index = atn_index + 1; } } //</editor-fold> } String suggestion_cell_line = ""; String suggestion_organism_part = ""; String suggestion_tissue = ""; String suggestion_disease = ""; String samplesType_from_sra = ""; String cell_line_confidence = ""; String organism_part_confidence = ""; String disease_confidence = ""; String tissue_confidence = ""; //<editor-fold defaultstate="collapsed" desc="if else biosmaple attr has cell line"> if (count_cell_line > 0) { if (Integer.parseInt(studyNumsample) == count_cell_line) { //good. all samples are from cell lines suggestion_cell_line = "Yes:"; String cell_line_value = cell_lines_set.iterator().next(); suggestion_cell_line = suggestion_cell_line + cell_line_value; cell_line_confidence = "100%. All " + cell_line_stat_map.get(cell_line_value).toString() + " Samples"; } else { suggestion_cell_line = "Yes:"; Map.Entry<String, Integer> maxEntry = null; for (Map.Entry<String, Integer> entry : cell_line_stat_map.entrySet()) { if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0) { maxEntry = entry; } } suggestion_cell_line = suggestion_cell_line + maxEntry.getKey() + "(" + maxEntry.getValue().toString() + " samples)"; int confidence_percent = (int) (maxEntry.getValue() * 100.0f) / (Integer.parseInt(studyNumsample)); cell_line_confidence = confidence_percent + "%"; for (Iterator<String> it = cell_lines_set.iterator(); it.hasNext();) { String cellLine = it.next(); if (cellLine.equals(maxEntry.getKey())) { //do nothing } else { suggestion_cell_line = suggestion_cell_line + ", " + cellLine + "(" + cell_line_stat_map.get(cellLine).toString() + ")"; } } } } else { suggestion_cell_line = " No"; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc="if else biosmaple attr has organism part"> if (count_organism_part > 0) { if (Integer.parseInt(studyNumsample) == count_organism_part) { //good. all samples are from cell lines suggestion_organism_part = "Yes:"; String organism_part_value = organism_part_set.iterator().next(); suggestion_organism_part = suggestion_organism_part + organism_part_value; organism_part_confidence = "100%. All " + organism_part_stat_map.get(organism_part_value).toString() + " Samples"; } else { suggestion_organism_part = "Yes:"; Map.Entry<String, Integer> maxEntry = null; for (Map.Entry<String, Integer> entry : organism_part_stat_map.entrySet()) { if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0) { maxEntry = entry; } } suggestion_organism_part = suggestion_organism_part + maxEntry.getKey() + "(" + maxEntry.getValue().toString() + " samples)"; int confidence_percent = (int) (maxEntry.getValue() * 100.0f) / (Integer.parseInt(studyNumsample)); organism_part_confidence = confidence_percent + "%"; for (Iterator<String> it = organism_part_set.iterator(); it.hasNext();) { String organismPart = it.next(); if (organismPart.equals(maxEntry.getKey())) { //do nothing } else { suggestion_organism_part = suggestion_organism_part + ", " + organismPart + "(" + organism_part_stat_map.get(organismPart).toString() + ")"; } } } } else { suggestion_organism_part = " No"; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc="if else biosmaple attr has disease"> if (count_disease > 0) { if (Integer.parseInt(studyNumsample) == count_disease) { //good. all samples are from cell lines suggestion_disease = "Yes:"; String disease_value = disease_set.iterator().next(); suggestion_disease = suggestion_disease + disease_value; disease_confidence = "100%. All " + disease_stat_map.get(disease_value).toString() + " Samples"; } else { suggestion_disease = "Yes:"; Map.Entry<String, Integer> maxEntry = null; for (Map.Entry<String, Integer> entry : disease_stat_map.entrySet()) { if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0) { maxEntry = entry; } } suggestion_disease = suggestion_disease + maxEntry.getKey() + "(" + maxEntry.getValue().toString() + " samples)"; int confidence_percent = (int) (maxEntry.getValue() * 100.0f) / (Integer.parseInt(studyNumsample)); disease_confidence = confidence_percent + "%"; for (Iterator<String> it = disease_set.iterator(); it.hasNext();) { String diseasePart = it.next(); if (diseasePart.equals(maxEntry.getKey())) { //do nothing } else { suggestion_disease = suggestion_disease + ", " + diseasePart + "(" + disease_stat_map.get(diseasePart).toString() + ")"; } } } } else { suggestion_disease = " No"; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc="if else biosmaple attr has tissue"> if (count_tissue > 0) { if (Integer.parseInt(studyNumsample) == count_tissue) { //good. all samples are from cell lines suggestion_tissue = "Yes:"; String tissue_value = tissue_set.iterator().next(); suggestion_tissue = suggestion_tissue + tissue_value; tissue_confidence = "100%. All " + tissue_stat_map.get(tissue_value).toString() + " Samples"; } else { suggestion_tissue = "Yes:"; Map.Entry<String, Integer> maxEntry = null; for (Map.Entry<String, Integer> entry : tissue_stat_map.entrySet()) { if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0) { maxEntry = entry; } } suggestion_tissue = suggestion_tissue + maxEntry.getKey() + "(" + maxEntry.getValue().toString() + " samples)"; int confidence_percent = (int) (maxEntry.getValue() * 100.0f) / (Integer.parseInt(studyNumsample)); tissue_confidence = confidence_percent + "%"; for (Iterator<String> it = tissue_set.iterator(); it.hasNext();) { String tissuePart = it.next(); if (tissuePart.equals(maxEntry.getKey())) { //do nothing } else { suggestion_tissue = suggestion_tissue + ", " + tissuePart + "(" + tissue_stat_map.get(tissuePart).toString() + ")"; } } } } else { suggestion_tissue = " No"; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc="filling right top manual annotation"> //<editor-fold defaultstate="collapsed" desc="disease layout (Manual Annotation"> HorizontalLayout diseaseLayout = new HorizontalLayout(); CheckBox checkboxDiseaseYes = new CheckBox("Yes"); CheckBox checkboxDiseaseNo = new CheckBox("No"); String disease_from_biosample_attribute = ""; if (suggestion_disease.startsWith("Yes")) { disease_from_biosample_attribute = "From Biosample: " + suggestion_disease; } String disease_found = ""; String disease_text_parsed_confidence = ""; for (String disease : list_of_diseases) { if (StringUtils.containsIgnoreCase(studyName, disease) || StringUtils.containsIgnoreCase(studyTitle, disease)) { checkboxDiseaseYes.setValue(true); disease_found = disease_found + disease + " "; disease_text_parsed_confidence = "keyword found in Study or Title"; } } String diseaseLabelString = ""; if (disease_text_parsed_confidence.length() > 1) { diseaseLabelString = "<b><i>Suggestion: </i></b>" + disease_found + " <b> <i> Confidence: <i></b> " + disease_text_parsed_confidence; } if (disease_from_biosample_attribute.length() > 1) { diseaseLabelString = diseaseLabelString + "<b><i>Suggestion: </i></b>" + disease_from_biosample_attribute + " <b> <i> Confidence: <i></b> " + disease_confidence; } Label diseaseLabel = new Label(" " + diseaseLabelString, ContentMode.HTML); Label diseaseTitle = new Label("<b>Disease: </b>", ContentMode.HTML); diseaseLayout.addComponent(diseaseTitle); diseaseLayout.addComponent(checkboxDiseaseNo); diseaseLayout.addComponent(checkboxDiseaseYes); diseaseLayout.addComponent(diseaseLabel); //</editor-fold> //<editor-fold defaultstate="collapsed" desc="study types layout (Manual Annotation)"> Panel studyTypesPanel = new Panel("Sample Types"); HorizontalLayout studyTypesLayout = new HorizontalLayout(); HorizontalLayout caseControlLayout = new HorizontalLayout(); CheckBox checkboxCaseControlYes = new CheckBox("Yes"); CheckBox checkboxCaseControlNo = new CheckBox("No"); // checkboxCaseControlYes.setValue(true); Label caseControlTitle = new Label("<b>Case-Control: </b>", ContentMode.HTML); caseControlLayout.addComponent(caseControlTitle); caseControlLayout.addComponent(checkboxCaseControlYes); caseControlLayout.addComponent(checkboxCaseControlNo); HorizontalLayout timeSeriesLayout = new HorizontalLayout(); CheckBox checkboxTimeSeriesYes = new CheckBox("Yes"); CheckBox checkboxTimeSeriesNo = new CheckBox("No"); //checkboxTimeSeriesYes.setValue(true); Label timeSeriesTitle = new Label("<b>Time Series: </b>", ContentMode.HTML); timeSeriesLayout.addComponent(timeSeriesTitle); timeSeriesLayout.addComponent(checkboxTimeSeriesYes); timeSeriesLayout.addComponent(checkboxTimeSeriesNo); HorizontalLayout treatementLayout = new HorizontalLayout(); CheckBox checkboxTreatmentYes = new CheckBox("Yes"); CheckBox checkboxTreatmentNo = new CheckBox("No"); // checkboxTreatmentYes.setValue(true); Label treatmentTitle = new Label("<b>Treatment: </b>", ContentMode.HTML); treatementLayout.addComponent(treatmentTitle); treatementLayout.addComponent(checkboxTreatmentYes); treatementLayout.addComponent(checkboxTreatmentNo); studyTypesLayout.addComponent(caseControlLayout); Label emptyLabel = new Label(" ", ContentMode.HTML); studyTypesLayout.addComponent(emptyLabel); studyTypesLayout.addComponent(timeSeriesLayout); Label emptyLabel0 = new Label(" ", ContentMode.HTML); studyTypesLayout.addComponent(emptyLabel0); studyTypesLayout.addComponent(treatementLayout); studyTypesLayout.setSizeFull(); studyTypesPanel.setContent(studyTypesLayout); studyTypesPanel.setWidth(Sizeable.SIZE_UNDEFINED, Unit.PERCENTAGE); studyTypesPanel.addStyleName("panelborder"); //</editor-fold> //<editor-fold defaultstate="collapsed" desc="Disease Category Layout"> Panel diseaseCategoryPanel = new Panel("Disease Category"); HorizontalLayout diseaseCategoriesLayout = new HorizontalLayout(); //Complex Disease ListSelect complexDisease = new ListSelect("Complex Disease"); complexDisease.setMultiSelect(true); for (String disease : complexDiseaseArray) { complexDisease.addItem(disease); } diseaseCategoriesLayout.addComponent(complexDisease); Label emptyLabel2 = new Label(" ", ContentMode.HTML); diseaseCategoriesLayout.addComponent(emptyLabel2); // Rare disease ListSelect rareDisease = new ListSelect("Rare Diseases"); rareDisease.setMultiSelect(true); for (String disease : rareDiseaseArray) { rareDisease.addItem(disease); } diseaseCategoriesLayout.addComponent(rareDisease); Label emptyLabel3 = new Label(" ", ContentMode.HTML); diseaseCategoriesLayout.addComponent(emptyLabel3); // Other diseases ListSelect otherDisease = new ListSelect("Other Diseases"); otherDisease.setMultiSelect(true); for (String disease : otherDiseaseArray) { otherDisease.addItem(disease); } diseaseCategoriesLayout.addComponent(otherDisease); // Label emptyLabel4 = new Label(" ", ContentMode.HTML); // diseaseCategoriesLayout.addComponent(emptyLabel4); diseaseCategoryPanel.setContent(diseaseCategoriesLayout); diseaseCategoryPanel.setWidth(Sizeable.SIZE_UNDEFINED, Unit.PERCENTAGE); diseaseCategoryPanel.addStyleName("panelborder"); /* HorizontalLayout diseaseCategoriesLayout = new HorizontalLayout(); Label diseaseCategoryLabel = new Label("<b><i>Suggestion: </i></b>" + disease_found + " <b> <i> Confidence: <i></b> " + disease_confidence, ContentMode.HTML); String[] diseaseCategories = new String[]{"Complex Disease", "Rare Disease", "Other", "Not Sure"}; List<String> diseaseCategoriesList = Arrays.asList(diseaseCategories); ComboBox diseaseCategoryComboBox = new ComboBox("Disease Category", diseaseCategoriesList); diseaseCategoriesLayout.addComponent(diseaseCategoryComboBox); diseaseCategoriesLayout.addComponent(diseaseCategoryLabel); */ //</editor-fold> //<editor-fold defaultstate="collapsed" desc="platform layout (manual annotation)"> // List<String> platformsList = Arrays.asList(platforms); // ComboBox platformsListSelect = new ComboBox("Sequencing Platform", platformsList); ListSelect platformsListSelect = new ListSelect("Sequencing Platform"); platformsListSelect.setMultiSelect(true); for (String platform : platforms) { platformsListSelect.addItem(platform); } Set<String> matchedPlatformSet = new HashSet(); String platform_from_sra = ""; String platorm_confidence = ""; int matchPlatformCount = 0; for (String[] val : platformMap.values()) { if (val.length > 1) { for (String pf : platforms) { if (val[0].equalsIgnoreCase(pf)) { matchedPlatformSet.add(pf); matchPlatformCount = matchPlatformCount + 1; } } } else { } } if (matchedPlatformSet.isEmpty()) { platform_from_sra = "Match Not Found"; } else { if (matchedPlatformSet.size() == matchPlatformCount) { if (matchedPlatformSet.size() == 1) { platform_from_sra = matchedPlatformSet.iterator().next().toString(); for (Iterator i = platformsListSelect.getItemIds().iterator(); i.hasNext();) { Object iid = (Object) i.next(); String temp = iid.toString(); if (platform_from_sra.equalsIgnoreCase(temp)) { platformsListSelect.select(iid); } } } else { platform_from_sra = "Can't predict. All experiment on different Platforms"; } } else { if (matchedPlatformSet.size() == 1) { // Perfect platform_from_sra = matchedPlatformSet.iterator().next().toString(); for (Iterator i = platformsListSelect.getItemIds().iterator(); i.hasNext();) { Object iid = (Object) i.next(); String temp = iid.toString(); if (platform_from_sra.equalsIgnoreCase(temp)) { platformsListSelect.select(iid); } } platorm_confidence = "100%"; } else { } } } HorizontalLayout platformLayout = new HorizontalLayout(); Label suggestedPlatformLabel = new Label("<b><i>Suggestion: </i></b>" + platform_from_sra + "<b> <i> Confidence: <i></b> " + platorm_confidence, ContentMode.HTML); platformsListSelect.setHeight(platformsListSelect.size() + 2, Unit.EM); platformLayout.addComponent(platformsListSelect); platformLayout.addComponent(suggestedPlatformLabel); //</editor-fold> //<editor-fold defaultstate="collapsed" desc="Sample types Panel (Manual Annotation)"> Panel sampleTypesPanel = new Panel("Sample Types"); VerticalLayout sampleTypesLayout = new VerticalLayout(); CheckBox checkboxSampleTypeCellLine = new CheckBox("Cell Line"); CheckBox checkboxSampleTypeTissue = new CheckBox("Tissue"); CheckBox checkboxSampleTypePrimaryCells = new CheckBox("Primary Cells"); CheckBox checkboxSampleTypeWholeBlood = new CheckBox("Blood"); CheckBox checkboxSampleTypePlasma = new CheckBox("Plasma"); String suggestedCellTypeLabelString = ""; if (suggestion_cell_line.startsWith("Yes")) { //sampleTypesListComboBox.select("Cell Lines"); checkboxSampleTypeCellLine.setValue(true); suggestedCellTypeLabelString = "<b><i> Suggestion: </i></b>" + "Cell Lines --> " + suggestion_cell_line + " <b> <i> Confidence: <i></b> " + cell_line_confidence; } Label suggestedCellLineLabel = new Label(suggestedCellTypeLabelString, ContentMode.HTML); String suggestedTissueLabelString = ""; if (suggestion_organism_part.startsWith("Yes")) { checkboxSampleTypeTissue.setValue(true); suggestedTissueLabelString = suggestedTissueLabelString + "<b><i> Suggestion: </i></b>" + "Organism part --> " + suggestion_organism_part + " <b> <i> Confidence: <i></b> " + organism_part_confidence; } if (suggestion_tissue.startsWith("Yes")) { checkboxSampleTypeTissue.setValue(true); suggestedTissueLabelString = suggestedTissueLabelString + "<b><i> Suggestion: </i></b>" + "Tissue --> " + suggestion_tissue + " <b> <i> Confidence: <i></b> " + tissue_confidence; } Label suggestedTissueLabel = new Label(suggestedTissueLabelString, ContentMode.HTML); String suggestedStemCellString = ""; /* if (suggestion_stem_cell.startsWith("Yes")) { checkboxSampleTypeStemCells.setValue(true); suggestedCellTypeLabelString = "<b><i>Suggestion: </i></b>" + "Cell Lines --> " + suggestion_stem_cell + " <b> <i> Confidence: <i></b> " + stem_cell_confidence; } */ Label suggestedStemCellLabel = new Label(suggestedStemCellString, ContentMode.HTML); String suggestedWholeBloodLabelString = ""; /* if (suggestion_whole_blood.startsWith("Yes")) { checkboxSampleTypeWholeBlood.setValue(true); suggestedWholeBloodLabelString = "<b><i>Suggestion: </i></b>" + "Whole Blood --> " + suggestion_whole_blood + " <b> <i> Confidence: <i></b> " + whole_blood_confidence; } */ Label suggestedWholeBloodLabel = new Label(suggestedWholeBloodLabelString, ContentMode.HTML); String suggestedPlasmaLabelString = ""; /* if (suggestion_plasma.startsWith("Yes")) { checkboxSampleTypePlasma.setValue(true); suggestedPlasmaLabelString = "<b><i>Suggestion: </i></b>" + "Cell Lines --> " + suggestion_plasma + " <b> <i> Confidence: <i></b> " + plasma_confidence; } */ Label suggestedPlasmaLabel = new Label(suggestedPlasmaLabelString, ContentMode.HTML); HorizontalLayout CellLineLayout = new HorizontalLayout(); CellLineLayout.addComponent(checkboxSampleTypeCellLine); CellLineLayout.addComponent(suggestedCellLineLabel); HorizontalLayout PrimaryCellsLayout = new HorizontalLayout(); PrimaryCellsLayout.addComponent(checkboxSampleTypePrimaryCells); // PrimaryCellsLayout.addComponent(suggestedPrimaryCellsLabel); HorizontalLayout TissueLayout = new HorizontalLayout(); TissueLayout.addComponent(checkboxSampleTypeTissue); TissueLayout.addComponent(suggestedTissueLabel); HorizontalLayout WholeBloodLayout = new HorizontalLayout(); WholeBloodLayout.addComponent(checkboxSampleTypeWholeBlood); WholeBloodLayout.addComponent(suggestedWholeBloodLabel); HorizontalLayout PlasmaLayout = new HorizontalLayout(); PlasmaLayout.addComponent(checkboxSampleTypePlasma); PlasmaLayout.addComponent(suggestedPlasmaLabel); sampleTypesLayout.addComponent(CellLineLayout); sampleTypesLayout.addComponent(PrimaryCellsLayout); sampleTypesLayout.addComponent(TissueLayout); sampleTypesLayout.addComponent(WholeBloodLayout); sampleTypesLayout.addComponent(PlasmaLayout); sampleTypesPanel.setContent(sampleTypesLayout); sampleTypesPanel.setWidth(Sizeable.SIZE_UNDEFINED, Unit.PERCENTAGE); sampleTypesPanel.addStyleName("panelborder"); //</editor-fold> Button addCustomAnnoButton = new Button("++ Custom Annotation"); addCustomAnnoButton.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { custom_annotation_counter = custom_annotation_counter + 1; HorizontalLayout customLayout = new HorizontalLayout(); TextField customAnnoName = new TextField("Custom Name"); customAnnoName.setId("customAnnoName" + custom_annotation_counter); TextField customAnnoValue = new TextField("Custom Value"); customLayout.addComponent(customAnnoName); customLayout.addComponent(customAnnoValue); customAnnoValue.setId("customAnnoValue" + custom_annotation_counter); int addCustomAnnoButtonIndex = rightTopAnnotationForm .getComponentIndex(addCustomAnnoButton); rightTopAnnotationForm.addComponent(customLayout, addCustomAnnoButtonIndex); } }); //<editor-fold defaultstate="collapsed" desc="Replicate Type"> HorizontalLayout replicatTypesLayout = new HorizontalLayout(); String replicateType_from_sra = ""; String replicateType_confidence = ""; Label suggestedreplicatTypeLabel = new Label("<b><i>Suggestion: </i></b>" + replicateType_from_sra + " <b> <i> Confidence: <i></b> " + replicateType_confidence, ContentMode.HTML); String[] replicatTypes = new String[] { "Biological -- different individuals", "Biological -- same individual but severe treatment to RNA", "Semi Biological/Technical -- mild treatment", "Technical -- machine parameter or buffer (very mild)" }; List<String> replicatTypesList = Arrays.asList(replicatTypes); ComboBox replicatTypesListComboBox = new ComboBox("Replicates Type ", replicatTypesList); replicatTypesLayout.addComponent(replicatTypesListComboBox); replicatTypesLayout.addComponent(suggestedreplicatTypeLabel); //</editor-fold> checkboxCaseControlYes.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { if (checkboxCaseControlYes.getValue()) { checkboxCaseControlNo.setValue(!checkboxCaseControlYes.getValue()); } } }); checkboxCaseControlNo.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { if (checkboxCaseControlNo.getValue()) { checkboxCaseControlYes.setValue(!checkboxCaseControlNo.getValue()); } } }); checkboxTimeSeriesYes.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { if (checkboxTimeSeriesYes.getValue()) { checkboxTimeSeriesNo.setValue(!checkboxTimeSeriesYes.getValue()); } } }); checkboxTimeSeriesNo.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { if (checkboxTimeSeriesNo.getValue()) { checkboxTimeSeriesYes.setValue(!checkboxTimeSeriesNo.getValue()); } } }); checkboxTreatmentYes.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { if (checkboxTreatmentYes.getValue()) { checkboxTreatmentNo.setValue(!checkboxTreatmentYes.getValue()); } } }); checkboxTreatmentNo.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { if (checkboxTreatmentNo.getValue()) { checkboxTreatmentYes.setValue(!checkboxTreatmentNo.getValue()); } } }); checkboxDiseaseYes.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { checkboxDiseaseNo.setValue(!checkboxDiseaseYes.getValue()); diseaseCategoryPanel.setVisible(true); } }); checkboxDiseaseNo.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { checkboxDiseaseYes.setValue(!checkboxDiseaseNo.getValue()); diseaseCategoryPanel.setVisible(false); } }); //<editor-fold defaultstate="collapsed" desc="Annotation Status Ongoing or Completed "> Panel annotationStatusPanel = new Panel("Annotation Status"); CheckBox checkboxAnnotaionCompleted = new CheckBox("Annotaion Completed"); CheckBox checkboxAnnotaionOngoing = new CheckBox("Annotaion Ongoing"); checkboxAnnotaionOngoing.setValue(true); checkboxAnnotaionCompleted.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { checkboxAnnotaionOngoing.setValue(!checkboxAnnotaionCompleted.getValue()); } }); checkboxAnnotaionOngoing.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { checkboxAnnotaionCompleted.setValue(!checkboxAnnotaionOngoing.getValue()); } }); HorizontalLayout annotationStatusLayout = new HorizontalLayout(); annotationStatusLayout.addComponent(checkboxAnnotaionOngoing); Label emptyLabel_1 = new Label(" ", ContentMode.HTML); annotationStatusLayout.addComponent(emptyLabel_1); annotationStatusLayout.addComponent(checkboxAnnotaionCompleted); annotationStatusPanel.setContent(annotationStatusLayout); annotationStatusPanel.setWidth(Sizeable.SIZE_UNDEFINED, Unit.PERCENTAGE); annotationStatusPanel.addStyleName("panelborder"); //</editor-fold> //<editor-fold defaultstate="collapsed" desc="login, sign in, register, and suggestion by manual annotation if logged "> Button loginButton = new Button("Sign In"); Button registerButton = new Button("Register"); HorizontalLayout requestLoginLayout = new HorizontalLayout(); requestLoginLayout.addComponent(userWelcome); requestLoginLayout.addComponent(loginButton); requestLoginLayout.addComponent(registerButton); rightTopAnnotationForm.addComponent(requestLoginLayout); VerticalLayout userPasswordLayout = new VerticalLayout(); VerticalLayout registerLayout = new VerticalLayout(); loginButton.addClickListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { if (event.getButton() == loginButton) { if (loginButton.getCaption() == "Sign In") { // Create the user input field user = new TextField("User:"); user.setWidth("300px"); user.setRequired(true); user.setInputPrompt("Your username (eg. joe@email.com)"); user.addValidator(new EmailValidator("Username must be an email address")); user.setInvalidAllowed(false); // Create the password input field password = new PasswordField("Password:"); password.setWidth("300px"); password.addValidator(new PasswordValidator()); password.setRequired(true); password.setValue(""); password.setNullRepresentation(""); // Create login button loginSubmitButton = new Button("Login", this); loginSubmitButton.addClickListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { if (event.getButton() == loginSubmitButton) { if (!user.isValid() || !password.isValid()) { return; } String username = user.getValue(); String entered_password = password.getValue(); boolean isChecked = false; try { // check user details in the database SQLContainer checkContainer = createMySQLContainer( "annotation_users", "dummy"); Item id = checkContainer .getItem(new RowId(new Object[] { username })); if (id != null) { user.setCaption("User"); if (entered_password.equals( id.getItemProperty("password").getValue().toString())) { isChecked = true; } else { password.setCaption("Password (wrong password entered)"); System.out.println( "Password can not be validated. Please re-enter or Register"); System.out.println( "Fetched password for user : " + id.toString() + " is " + id.getItemProperty("password") .getValue().toString()); } } else { user.setCaption( "User (wrong username entered. Enter your email again or register)"); password.setCaption("Password"); System.out.println( "User name can not be validated. Please re-enter or Register"); } } catch (Exception e) { isChecked = false; System.out.println( "Problem in validating login details using database. Either user or password is wrong"); } boolean isValid = username.equals("test@test.com") && entered_password.equals("passw0rd"); if (isChecked) { // System.out.println("User name and passoword : Both are correct"); // Store the current user in the service session getSession().setAttribute("user", username); userWelcome.setValue("Hello " + username); int userPasswordLayoutIndex = rightTopAnnotationForm .getComponentIndex(userPasswordLayout); requestLoginLayout.removeComponent(registerButton); rightTopAnnotationForm.addComponent(requestLoginLayout, userPasswordLayoutIndex); rightTopAnnotationForm.removeComponent(userPasswordLayout); userPasswordLayout.removeAllComponents(); loginButton.setCaption("Logout"); } else { // Wrong password clear the password field and refocuses it password.setValue(null); password.focus(); } // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } } }); // Add both to a panel VerticalLayout fields = new VerticalLayout(user, password, loginSubmitButton); fields.setCaption( "Please login to access the application. (test@test.com/passw0rd)"); fields.setSpacing(true); fields.setMargin(new MarginInfo(true, true, true, false)); fields.setSizeUndefined(); // The view root layout userPasswordLayout.addComponent(fields); int addUserLayoutIndex = rightTopAnnotationForm .getComponentIndex(requestLoginLayout); rightTopAnnotationForm.addComponent(userPasswordLayout, addUserLayoutIndex); rightTopAnnotationForm.removeComponent(requestLoginLayout); } else if (loginButton.getCaption() == "Logout") { getSession().setAttribute("user", null); userWelcome.setValue("Anonymous "); loginButton.setCaption("Sign In"); requestLoginLayout.addComponent(registerButton); } } } }); registerButton.addClickListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { if (event.getButton() == registerButton) { // Create the user input field TextField newUser = new TextField("User:"); newUser.setWidth("300px"); newUser.setRequired(true); newUser.setInputPrompt("Your username (eg. joe@email.com)"); newUser.addValidator(new EmailValidator("Username must be an email address")); newUser.setInvalidAllowed(false); // Create the password input field PasswordField setPassword = new PasswordField("Set Password:"); setPassword.setWidth("300px"); setPassword.addValidator(new PasswordValidator()); setPassword.setRequired(true); setPassword.setValue(""); setPassword.setNullRepresentation(""); // Create login button Button registerSubmitButton = new Button("Register me", this); registerSubmitButton.addClickListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { if (event.getButton() == registerSubmitButton) { if (!newUser.isValid() || !setPassword.isValid()) { return; } String username = newUser.getValue(); String entered_password = setPassword.getValue(); String insert_user = "'" + username + "' , '" + entered_password + "'"; boolean isInserted = true; try { // Insert new user details in the database SQLContainer insertContainer = createMySQLContainer("annotation_users", insert_user); Object id = insertContainer.addItem(); insertContainer.getContainerProperty(id, "user").setValue(username); insertContainer.getContainerProperty(id, "password") .setValue(entered_password); insertContainer.commit(); } catch (Exception e) { isInserted = false; System.out.println( "Problem in registering new user while inserting into the database"); } if (isInserted) { userWelcome.setValue( "Registered Successfulle. Please Sign in to annotate. "); int registerLayoutIndex = rightTopAnnotationForm .getComponentIndex(registerLayout); rightTopAnnotationForm.addComponent(requestLoginLayout, registerLayoutIndex); rightTopAnnotationForm.removeComponent(registerLayout); registerLayout.removeAllComponents(); requestLoginLayout.removeComponent(registerButton); } else { // Wrong password clear the password field and refocuses it password.setValue(null); password.focus(); } // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } } }); // Add both to a panel VerticalLayout registerFields = new VerticalLayout(newUser, setPassword, registerSubmitButton); registerFields .setCaption("Please login to access the application. (test@test.com/passw0rd)"); registerFields.setSpacing(true); registerFields.setMargin(new MarginInfo(true, true, true, false)); registerFields.setSizeUndefined(); registerLayout.addComponent(registerFields); int requestLoginLayoutIndex = rightTopAnnotationForm .getComponentIndex(requestLoginLayout); rightTopAnnotationForm.addComponent(registerLayout, requestLoginLayoutIndex); rightTopAnnotationForm.removeComponent(requestLoginLayout); } } }); boolean isLoggedIn = getSession().getAttribute("user") != null; if (isLoggedIn) { // System.out.println("user attribute" + String.valueOf(getSession().getAttribute("user"))); String logged_user = String.valueOf(getSession().getAttribute("user")); userWelcome.setValue("Hello " + logged_user); loginButton.setCaption("Logout"); requestLoginLayout.removeComponent(registerButton); try { String search_query = " SELECT * FROM manual_annotation " + "where annotator = '" + logged_user + "'" + " AND studyid = '" + selectedStudy + "'"; rnaseqContainer = createMySQLContainer("suggestion_by_manual_annotation", search_query); //rnaseqContainer.removeAllContainerFilters(); Item lastItem = rnaseqContainer.getItem(rnaseqContainer.lastItemId()); System.out.println("Item is " + lastItem); // String annotated_disease_category = lastItem.getItemProperty("disease_category").getValue().toString(); String isDisease = "1"; if (!(lastItem.getItemProperty("isDisease").getValue() == null)) { isDisease = lastItem.getItemProperty("isDisease").getValue().toString(); // System.out.println("disease is not null" + isDisease); if (isDisease.equals("1")) { checkboxDiseaseYes.setValue(true); } else if (isDisease.equals("0")) { checkboxDiseaseNo.setValue(true); } } else { checkboxDiseaseYes.setValue(true); // System.out.println("disease is null"); } if (!(lastItem.getItemProperty("isCaseControl").getValue() == null)) { if (lastItem.getItemProperty("isCaseControl").getValue().toString().equals("1")) { checkboxCaseControlYes.setValue(true); } else if (lastItem.getItemProperty("isCaseControl").getValue().toString() .equals("0")) { checkboxCaseControlNo.setValue(true); } } if (!(lastItem.getItemProperty("isTimeSeries").getValue() == null)) { if (lastItem.getItemProperty("isTimeSeries").getValue().toString().equals("1")) { checkboxTimeSeriesYes.setValue(true); } else if (lastItem.getItemProperty("isTimeSeries").getValue().toString().equals("0")) { checkboxTimeSeriesNo.setValue(true); } } if (!(lastItem.getItemProperty("isTreatment").getValue() == null)) { if (lastItem.getItemProperty("isTreatment").getValue().toString().equals("1")) { checkboxTreatmentYes.setValue(true); } else if (lastItem.getItemProperty("isTreatment").getValue().toString().equals("0")) { checkboxTreatmentNo.setValue(true); } } if (!(lastItem.getItemProperty("isCellLine").getValue() == null)) { if (lastItem.getItemProperty("isCellLine").getValue().toString().equals("1")) { checkboxSampleTypeCellLine.setValue(true); } else if (lastItem.getItemProperty("isCellLine").getValue().toString().equals("0")) { checkboxSampleTypeCellLine.setValue(false); } } if (!(lastItem.getItemProperty("isPrimaryCells").getValue() == null)) { if (lastItem.getItemProperty("isPrimaryCells").getValue().toString().equals("1")) { checkboxSampleTypePrimaryCells.setValue(true); } else if (lastItem.getItemProperty("isPrimaryCells").getValue().toString() .equals("0")) { checkboxSampleTypePrimaryCells.setValue(false); } } if (!(lastItem.getItemProperty("isTissue").getValue() == null)) { if (lastItem.getItemProperty("isTissue").getValue().toString().equals("1")) { checkboxSampleTypeTissue.setValue(true); } else if (lastItem.getItemProperty("isTissue").getValue().toString().equals("0")) { checkboxSampleTypeTissue.setValue(false); } } if (!(lastItem.getItemProperty("isWholeBlood").getValue() == null)) { if (lastItem.getItemProperty("isWholeBlood").getValue().toString().equals("1")) { checkboxSampleTypeWholeBlood.setValue(true); } else if (lastItem.getItemProperty("isWholeBlood").getValue().toString().equals("0")) { checkboxSampleTypeWholeBlood.setValue(false); } } if (!(lastItem.getItemProperty("isPlasma").getValue() == null)) { if (lastItem.getItemProperty("isPlasma").getValue().toString().equals("1")) { checkboxSampleTypePlasma.setValue(true); } else if (lastItem.getItemProperty("isPlasma").getValue().toString().equals("0")) { checkboxSampleTypePlasma.setValue(false); } } if (!(lastItem.getItemProperty("sequencing_platform").getValue() == null)) { String sequencing_platform = lastItem.getItemProperty("sequencing_platform").getValue() .toString(); String[] annotated_platforms = sequencing_platform.split("\\;"); for (Iterator i = platformsListSelect.getItemIds().iterator(); i.hasNext();) { Object iid = (Object) i.next(); String temp = iid.toString(); if (annotated_platforms.length > 0) { for (String pf : annotated_platforms) { if (pf.equalsIgnoreCase(temp)) { platformsListSelect.select(iid); } } } } } if (!(lastItem.getItemProperty("replicate_type").getValue() == null)) { String replicate_type = lastItem.getItemProperty("replicate_type").getValue() .toString(); for (Iterator i = replicatTypesListComboBox.getItemIds().iterator(); i.hasNext();) { Object iid = (Object) i.next(); String temp = iid.toString(); if (replicate_type.equalsIgnoreCase(temp)) { replicatTypesListComboBox.select(iid); } } } if (!(lastItem.getItemProperty("annotation_status").getValue() == null)) { if (lastItem.getItemProperty("annotation_status").getValue().toString() .equals("ongoing")) { checkboxAnnotaionOngoing.setValue(true); } else if (lastItem.getItemProperty("annotation_status").getValue().toString() .equals("completed")) { checkboxAnnotaionCompleted.setValue(true); } } String annotated_disease_category = lastItem.getItemProperty("disease_category").getValue() .toString(); String[] annotated_disease_categories = annotated_disease_category.split("\\;"); String main_disease = ""; for (Iterator i = complexDisease.getItemIds().iterator(); i.hasNext();) { Object iid = (Object) i.next(); String selected_disease_category = ""; String temp = iid.toString(); if (!temp.startsWith("--")) { main_disease = temp; } if (iid.toString().startsWith("--")) { // sub disease is selected if (selected_disease_category.isEmpty()) { selected_disease_category = "complex_disease|" + main_disease + "|" + temp; } else { selected_disease_category = selected_disease_category + "," + "complex_disease|" + main_disease + "|" + temp; } } else { if (selected_disease_category.isEmpty()) { selected_disease_category = "complex_disease|" + main_disease + "|" + "-- Any"; } else { selected_disease_category = selected_disease_category + "," + "complex_disease|" + main_disease + "|" + "-- Any"; } } if (annotated_disease_categories.length > 0) { for (String cat : annotated_disease_categories) { // System.out.println(cat + selected_disease_category); if (cat.equals(selected_disease_category)) { complexDisease.select(iid); } } } } main_disease = ""; for (Iterator i = rareDisease.getItemIds().iterator(); i.hasNext();) { Object iid = (Object) i.next(); String selected_disease_category = ""; String temp = iid.toString(); if (!temp.startsWith("--")) { main_disease = temp; } if (iid.toString().startsWith("--")) { // sub disease is selected if (selected_disease_category.isEmpty()) { selected_disease_category = "rare_disease|" + main_disease + "|" + temp; } else { selected_disease_category = selected_disease_category + "," + "rare_disease|" + main_disease + "|" + temp; } } else { if (selected_disease_category.isEmpty()) { selected_disease_category = "rare_disease|" + main_disease + "|" + "-- Any"; } else { selected_disease_category = selected_disease_category + "," + "rare_disease|" + main_disease + "|" + "-- Any"; } } if (annotated_disease_categories.length > 0) { for (String cat : annotated_disease_categories) { // System.out.println(cat + selected_disease_category); if (cat.equals(selected_disease_category)) { rareDisease.select(iid); } } } } main_disease = ""; for (Iterator i = otherDisease.getItemIds().iterator(); i.hasNext();) { Object iid = (Object) i.next(); String selected_disease_category = ""; String temp = iid.toString(); if (!temp.startsWith("--")) { main_disease = temp; } if (iid.toString().startsWith("--")) { // sub disease is selected if (selected_disease_category.isEmpty()) { selected_disease_category = "other_disease|" + main_disease + "|" + temp; } else { selected_disease_category = selected_disease_category + "," + "other_disease|" + main_disease + "|" + temp; } } else { if (selected_disease_category.isEmpty()) { selected_disease_category = "other_disease|" + main_disease + "|" + "-- Any"; } else { selected_disease_category = selected_disease_category + "," + "other_disease|" + main_disease + "|" + "-- Any"; } } if (annotated_disease_categories.length > 0) { for (String cat : annotated_disease_categories) { // System.out.println(cat + selected_disease_category); if (cat.equals(selected_disease_category)) { otherDisease.select(iid); } } } } } catch (Exception e) { } } //</editor-fold> Button submitButton = new Button("Submit"); submit_manual_count = 0; Label manualSubmitStatus = new Label(""); submitButton.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { if (event.getButton() == submitButton) { submit_manual_count = submit_manual_count + 1; int isDisease = 0; if (checkboxDiseaseYes.getValue() && !checkboxDiseaseNo.getValue()) { isDisease = 1; } String selected_disease_category = ""; String main_disease = ""; for (Iterator i = complexDisease.getItemIds().iterator(); i.hasNext();) { Object iid = (Object) i.next(); String temp = iid.toString(); if (!temp.startsWith("--")) { main_disease = temp; } if (complexDisease.isSelected(iid)) { // System.out.println("Selected" + temp); if (iid.toString().startsWith("--")) { // sub disease is selected if (selected_disease_category.isEmpty()) { selected_disease_category = "complex_disease|" + main_disease + "|" + temp; } else { selected_disease_category = selected_disease_category + ";" + "complex_disease|" + main_disease + "|" + temp; } } else { //main disease is selected // selected_disease_main = main_disease; if (selected_disease_category.isEmpty()) { selected_disease_category = "complex_disease|" + main_disease + "|" + "Any"; } else { selected_disease_category = selected_disease_category + ";" + "complex_disease|" + main_disease + "|" + "Any"; } } } } main_disease = ""; for (Iterator i = rareDisease.getItemIds().iterator(); i.hasNext();) { Object iid = (Object) i.next(); String temp = iid.toString(); if (!temp.startsWith("--")) { main_disease = temp; } if (rareDisease.isSelected(iid)) { // System.out.println("Selected" + temp); if (iid.toString().startsWith("--")) { // sub disease is selected if (selected_disease_category.isEmpty()) { selected_disease_category = "rare_disease|" + main_disease + "|" + temp; } else { selected_disease_category = selected_disease_category + ";" + "rare_disease|" + main_disease + "|" + temp; } } else { //main disease is selected // selected_disease_main = main_disease; if (selected_disease_category.isEmpty()) { selected_disease_category = "rare_disease|" + main_disease + "|" + "Any"; } else { selected_disease_category = selected_disease_category + ";" + "rare_disease|" + main_disease + "|" + "Any"; } } } } main_disease = ""; for (Iterator i = otherDisease.getItemIds().iterator(); i.hasNext();) { Object iid = (Object) i.next(); String temp = iid.toString(); if (!temp.startsWith("--")) { main_disease = temp; } if (otherDisease.isSelected(iid)) { // System.out.println("Selected" + temp); if (iid.toString().startsWith("--")) { // sub disease is selected if (selected_disease_category.isEmpty()) { selected_disease_category = "other_disease|" + main_disease + "|" + temp; } else { selected_disease_category = selected_disease_category + ";" + "other_disease|" + main_disease + "|" + temp; } } else { if (selected_disease_category.isEmpty()) { selected_disease_category = "other_disease|" + main_disease + "|" + "Any"; } else { selected_disease_category = selected_disease_category + ";" + "other_disease|" + main_disease + "|" + "Any"; } } } } int isCaseControl = 0; if (checkboxCaseControlYes.getValue() && !checkboxCaseControlNo.getValue()) { isCaseControl = 1; } int isTimeSeries = 0; if (checkboxTimeSeriesYes.getValue() && !checkboxTimeSeriesNo.getValue()) { isTimeSeries = 1; } int isTreatment = 0; if (checkboxTreatmentYes.getValue() && !checkboxTreatmentNo.getValue()) { isTreatment = 1; } int isTissue = 0; if (checkboxSampleTypeTissue.getValue()) { isTissue = 1; } int isCellLine = 0; if (checkboxSampleTypeCellLine.getValue()) { isCellLine = 1; } int isPrimaryCells = 0; if (checkboxSampleTypePrimaryCells.getValue()) { isPrimaryCells = 1; } int isWholeBlood = 0; if (checkboxSampleTypeWholeBlood.getValue()) { isWholeBlood = 1; } int isPlasma = 0; if (checkboxSampleTypePlasma.getValue()) { isPlasma = 1; } String selected_sequencing_platforms = ""; for (Iterator i = platformsListSelect.getItemIds().iterator(); i.hasNext();) { Object iid = (Object) i.next(); String temp = iid.toString(); if (platformsListSelect.isSelected(iid)) { if (selected_sequencing_platforms.isEmpty()) { selected_sequencing_platforms = temp; } else { selected_sequencing_platforms = selected_sequencing_platforms + ";" + temp; } } } String annotation_status = "ongoing"; if (checkboxAnnotaionCompleted.getValue() && !checkboxAnnotaionOngoing.getValue()) { annotation_status = "completed"; } String custom_annotation_value = ""; for (int j = 1; j <= custom_annotation_counter; j++) { if (findById(rightTopAnnotationForm, "customAnnoName" + j) instanceof TextField) { TextField tempTFname = (TextField) findById(rightTopAnnotationForm, "customAnnoName" + j); custom_annotation_value = custom_annotation_value + tempTFname.getValue() + ":::"; // System.out.println(j + "custom name: " + tempTFname.getValue()); } if (findById(rightTopAnnotationForm, "customAnnoValue" + j) instanceof TextField) { TextField tempTFvalue = (TextField) findById(rightTopAnnotationForm, "customAnnoValue" + j); custom_annotation_value = custom_annotation_value + tempTFvalue.getValue() + "###"; // System.out.println(j + "custom value: " + tempTFvalue.getValue()); } } String annotator = "Anonymous"; boolean isLoggedIn = getSession().getAttribute("user") != null; if (isLoggedIn) { annotator = String.valueOf(getSession().getAttribute("user")); // System.out.println("annotator is " + annotator); } Boolean isInserted = true; try { // Insert new user details in the database SQLContainer insertContainer = createMySQLContainer("manual_annotation", "dummy"); Object id = insertContainer.addItem(); insertContainer.getContainerProperty(id, "studyId").setValue(selectedStudy); insertContainer.getContainerProperty(id, "isDisease").setValue(isDisease); insertContainer.getContainerProperty(id, "isTimeSeries").setValue(isTimeSeries); insertContainer.getContainerProperty(id, "isTreatment").setValue(isTreatment); insertContainer.getContainerProperty(id, "isCellLine").setValue(isCellLine); insertContainer.getContainerProperty(id, "isPrimaryCells").setValue(isPrimaryCells); insertContainer.getContainerProperty(id, "isCaseControl").setValue(isCaseControl); insertContainer.getContainerProperty(id, "isTissue").setValue(isTissue); insertContainer.getContainerProperty(id, "disease_category") .setValue(selected_disease_category); insertContainer.getContainerProperty(id, "sequencing_platform") .setValue(selected_sequencing_platforms); insertContainer.getContainerProperty(id, "replicate_type") .setValue(replicatTypesListComboBox.getValue()); insertContainer.getContainerProperty(id, "isWholeBlood").setValue(isWholeBlood); insertContainer.getContainerProperty(id, "isPlasma").setValue(isPlasma); insertContainer.getContainerProperty(id, "custom_annotation") .setValue(custom_annotation_value); insertContainer.getContainerProperty(id, "annotation_status") .setValue(annotation_status); insertContainer.getContainerProperty(id, "annotator").setValue(annotator); insertContainer.commit(); manualSubmitStatus.setCaption("Submitted Manual Annotation Successfully"); SQLContainer dummyStudyContainer = null; if (annotation_status.equalsIgnoreCase("ongoing")) { dummyStudyContainer = createMySQLContainer("study_summary_ongoing", selectedStudy); } else if (annotation_status.equalsIgnoreCase("completed")) { dummyStudyContainer = createMySQLContainer("study_summary_completed", selectedStudy); } // Object studyid = insertStudyContainer.getItem(new RowId(new Object[]{selectedStudy})); // System.out.println("selected study is " + selectedStudy); // System.out.println("selected study id is " + studyid.toString()); // insertStudyContainer.getContainerProperty(studyid, "annotation_status").setValue(annotation_status); // insertStudyContainer.commit(); if (submit_manual_count > 1) { manualSubmitStatus.setCaption("Submitted Manual Annotation Successfully " + submit_manual_count + " times"); } } catch (Exception e) { isInserted = false; manualSubmitStatus.setCaption( "Problem occured during submission of Manual Annotation to the database"); System.out.println("Problem in inserting manual annotation into the database"); // e.printStackTrace(); } } } }); rightTopAnnotationForm.addComponent(diseaseLayout); rightTopAnnotationForm.addComponent(studyTypesPanel); rightTopAnnotationForm.addComponent(diseaseCategoryPanel); rightTopAnnotationForm.addComponent(platformLayout); rightTopAnnotationForm.addComponent(sampleTypesPanel); rightTopAnnotationForm.addComponent(replicatTypesLayout); rightTopAnnotationForm.addComponent(addCustomAnnoButton); rightTopAnnotationForm.addComponent(annotationStatusPanel); rightTopAnnotationForm.addComponent(submitButton); rightTopAnnotationForm.addComponent(manualSubmitStatus); //</editor-fold> //</editor-fold> //<editor-fold defaultstate="collapsed" desc="fill tree in right bottom"> Iterator iterator = biosampleSet.iterator(); // check values int treeBiosampleCount = 0; while (iterator.hasNext()) { treeBiosampleCount = treeBiosampleCount + 1; // System.out.println("Value: "+ iterator.next() + " "); // if(treeBiosampleCount < 500){ String bsample = iterator.next().toString(); String[] biosample_parts = bsample.split("\\|"); String biosample_acc = biosample_parts[0]; tree.addItem(biosample_acc); tree.setParent(biosample_acc, selectedStudy); tree.setItemCaption(biosample_acc, "BioSample: " + biosample_acc); // } } Set expMap_entrset = expMap.entrySet(); Iterator it = expMap_entrset.iterator(); while (it.hasNext()) { Map.Entry me = (Map.Entry) it.next(); String[] expParts = expDetailMap.get(me.getKey()); String expTitle = ""; if (expParts.length > 3) { expTitle = expParts[3]; } tree.addItem(me.getKey()); tree.setParent(me.getKey(), me.getValue()); tree.setItemCaption(me.getKey(), "Experiment: " + me.getKey() + ": " + expTitle); } Set runMap_entrset = runMap.entrySet(); Iterator runit = runMap_entrset.iterator(); while (runit.hasNext()) { Map.Entry runEntry = (Map.Entry) runit.next(); tree.addItem(runEntry.getKey()); tree.setParent(runEntry.getKey(), runEntry.getValue()); tree.setItemCaption(runEntry.getKey(), "Run: " + runEntry.getKey()); } tree.expandItemsRecursively(selectedStudy); //</editor-fold> } }); //</editor-fold> //<editor-fold defaultstate="collapsed" desc="Events associated with the Tree (study/Biosample/Experiment/Runs"> tree.setSelectable(true); tree.setImmediate(true); tree.addValueChangeListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { Object id = event.getProperty().getValue(); if (id != null) { String selectedTreeId = id.toString(); String selectedTreeItem = tree.getItemCaption(id).toString(); // System.out.println("Tree event is fired: " + selectedTreeItem); if (selectedTreeItem.startsWith("BioSample")) { myform.removeAllComponents(); SQLContainer tempContainer = createMySQLContainer("biosample", selectedTreeId); for (int i = 0; i < tempContainer.getItemIds().size(); i++) { String accessType = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("AccessType").getValue().toString(); String publicationDate = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("PublicationDate").getValue().toString(); String lastUpdate = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("LastUpdate").getValue().toString(); String accession = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Accession").getValue().toString(); String title = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Title").getValue().toString(); String taxonomy_id = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("TaxonomyId").getValue().toString(); String taxonomy_name = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("TaxonomyName").getValue().toString(); String samplePackage = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Package").getValue().toString(); String status = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Status").getValue().toString(); String statusTime = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("StatusTime").getValue().toString(); String sampleIds = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Ids").getValue().toString(); String attributes = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Attributes").getValue().toString(); String models = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Models").getValue().toString(); String submissionDate = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("SubmissionDate").getValue().toString(); String owner = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Owner").getValue().toString(); String[] myfields = new String[] { accessType, publicationDate, lastUpdate, accession, title, taxonomy_id, taxonomy_name, samplePackage, status, statusTime, sampleIds, attributes, models, submissionDate, owner }; /* for (String fieldName : myfields) { Label tempLabl = new Label(""); } */ Label labelAccessType = new Label("Access Type: " + accessType); myform.addComponent(labelAccessType); Label labelPublicationDate = new Label("Publication Date: " + publicationDate); myform.addComponent(labelPublicationDate); Label labelLastUpdate = new Label("Last Update: " + lastUpdate); myform.addComponent(labelLastUpdate); Label labelAccession = new Label("Accession: " + accession); myform.addComponent(labelAccession); Label labelTitle = new Label("<b>Title: </b>" + title, ContentMode.HTML); myform.addComponent(labelTitle); Label labelTaxonomyId = new Label("Taxonomy Id: " + taxonomy_id); myform.addComponent(labelTaxonomyId); Label labelTaxonomyName = new Label("Taxonomy Name: " + taxonomy_name); myform.addComponent(labelTaxonomyName); Label labelPackage = new Label("Package: " + samplePackage); myform.addComponent(labelPackage); Label labelStatus = new Label("Status: " + status); myform.addComponent(labelStatus); Label labelStatusTime = new Label("Status Time: " + statusTime); myform.addComponent(labelStatusTime); Label labelOwner = new Label("Owner: " + owner); myform.addComponent(labelOwner); String[] id_parts = sampleIds.split("\\:\\-"); if (id_parts.length > 1) { String[] id_dbs = id_parts[0].split("\\|"); String[] id_values = id_parts[1].split("\\|"); for (int j = 0; j < id_dbs.length; j++) { Label tempLabel = new Label(id_dbs[j] + ": " + id_values[j]); myform.addComponent(tempLabel); } } String[] attribute_parts = attributes.split("\\:\\-"); if (attribute_parts.length > 1) { String[] attribute_names = attribute_parts[0].split("\\|"); String[] attribute_values = attribute_parts[1].split("\\|"); for (int j = 0; j < attribute_names.length; j++) { Label tempLabel = new Label( "<b>" + attribute_names[j] + ": </b>" + attribute_values[j], ContentMode.HTML); myform.addComponent(tempLabel); // System.out.println("inside attributes "); } } // TextField field = new TextField(lastDpdate); // myform.addComponent(field); //field.setWidth("100%"); } } if (selectedTreeItem.startsWith("Experiment")) { SQLContainer tempContainer = createMySQLContainer("sra_rnaseq_exp", selectedTreeId); myform.removeAllComponents(); Map expMap = new HashMap(); Map<String, String[]> expDetailMap = new HashMap<>(); Map<String, String[]> libraryDetailMap = new HashMap<>(); Map<String, String[]> platformMap = new HashMap<>(); Map runMap = new HashMap(); HashSet<String> biosampleSet = new HashSet<>(); for (int i = 0; i < tempContainer.getItemIds().size(); i++) { String docid = tempContainer.getIdByIndex(i).toString(); String biosample = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Biosample_Acc_Id_SampleId").getValue().toString(); biosampleSet.add(biosample); String[] b_parts = biosample.split("\\|"); String exp = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Experiment_Acc_Ver_Status_Name").getValue().toString(); String[] exp_parts = exp.split("\\|"); String exp_acc = exp_parts[0]; expMap.put(exp_acc, b_parts[0]); expDetailMap.put(exp_acc, exp_parts); String library_string = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Library_Name_Strategy_Source_Selection_Layout").getValue() .toString(); String[] library_parts = library_string.split("\\|"); String library_name = ""; String library_strategy = ""; String library_source = ""; String library_selection = ""; String library_layout = ""; if (library_parts.length > 0) { library_name = library_parts[0]; } if (library_parts.length > 1) { library_strategy = "<b> <i> Strategy </i> </b>" + library_parts[1]; } if (library_parts.length > 2) { library_source = "<b> <i> Source </i> </b>" + library_parts[2]; } if (library_parts.length > 3) { library_selection = "<b> <i> Selection </i> </b>" + library_parts[3]; } if (library_parts.length > 4) { String tempLayout = library_parts[4]; tempLayout = tempLayout.replaceAll("<", ""); tempLayout = tempLayout.replaceAll("/>", ""); library_layout = "<b> <i> Layout </i> </b>" + tempLayout; } String[] tempStringArray = new String[] { library_strategy, library_source, library_selection, library_layout }; if (library_name.length() > 1) { libraryDetailMap.put(library_name, tempStringArray); } String sra_plaforms = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Platform_InstrumentModel").getValue().toString(); String[] sra_plaforms_parts = sra_plaforms.split("\\|"); platformMap.put(exp_acc, sra_plaforms_parts); String run = tempContainer.getItem(tempContainer.getIdByIndex(i)) .getItemProperty("Runs").getValue().toString(); String[] run_parts = run.split("\\|"); if (run_parts.length > 0) { for (int j = 0; j < run_parts.length; j++) { String temprun = run_parts[j]; String[] temprun_parts = temprun.split("\\,"); runMap.put(temprun_parts[0], exp_acc); } } } // Label labelExperimentAcc = new Label("<b>Experiment Accession: </b>" + selectedTreeId, ContentMode.HTML); // myform.addComponent(labelExperimentAcc); String libraryDetails = "<b>Experiment Accession: </b>" + selectedTreeId + "<br><br>"; for (Map.Entry<String, String[]> entry : libraryDetailMap.entrySet()) { libraryDetails = libraryDetails + "<b>Library Details: </b>" + entry.getKey() + "<br><br>"; String[] temp_library_details = entry.getValue(); for (String dt : temp_library_details) { libraryDetails = libraryDetails + dt + "<br><br>"; } } Label labelLibraryDetails = new Label(libraryDetails, ContentMode.HTML); myform.addComponent(labelLibraryDetails); // myform.setComponentAlignment(labelExperimentAcc, Alignment.TOP_LEFT); myform.setComponentAlignment(labelLibraryDetails, Alignment.TOP_LEFT); } if (selectedTreeItem.startsWith("Run")) { myform.removeAllComponents(); SQLContainer tempContainer = createMySQLContainer("sra_rnaseq_run", selectedTreeId); if (tempContainer.size() > 0) { Item tempItem = tempContainer.getItem(tempContainer.firstItemId()); String runs = tempItem.getItemProperty("Runs").getValue().toString(); String[] runs_parts = runs.split("\\|"); for (String run : runs_parts) { if (run.contains(selectedTreeId)) { String[] run_details = run.split("\\,"); String stringRun = ""; if (run_details.length > 0) { stringRun = stringRun + "<b>Run Accession: </b>" + run_details[0] + "<br><br>"; } if (run_details.length > 1) { stringRun = stringRun + "<b>Number of spots or reads: </b>" + run_details[1] + "<br><br>"; } if (run_details.length > 1) { stringRun = stringRun + "<b>Number of bases: </b>" + run_details[2] + "<br><br>"; } Label labelRunDetails = new Label(stringRun, ContentMode.HTML); myform.addComponent(labelRunDetails); } } } } } else { System.out.println("id is null"); } } }); //</editor-fold> }
From source file:edu.kit.dama.ui.admin.administration.user.UserDataAdministrationTab.java
License:Apache License
private Button getAddFilterButton() { if (addFilterButton == null) { String id = "filterButton"; LOGGER.debug("Building " + DEBUG_ID_PREFIX + id + " ..."); addFilterButton = new Button(); addFilterButton.setId(DEBUG_ID_PREFIX + id); addFilterButton.setIcon(new ThemeResource(IconContainer.FILTER_ADD)); addFilterButton.setStyleName(BaseTheme.BUTTON_LINK); addFilterButton.setDescription("Click to add a table column filter."); addFilterButton.addClickListener((Button.ClickEvent event) -> { openFilterWindow();//from ww w . j a va 2s . co m }); } return addFilterButton; }
From source file:edu.kit.dama.ui.admin.administration.user.UserDataAdministrationTab.java
License:Apache License
protected final Button getRemoveAllFiltersButton() { if (removeAllFiltersButton == null) { String id = "removeAllFiltersButton"; LOGGER.debug("Building " + DEBUG_ID_PREFIX + id + " ..."); removeAllFiltersButton = new Button(); removeAllFiltersButton.setId(DEBUG_ID_PREFIX + id); removeAllFiltersButton.setIcon(new ThemeResource(IconContainer.FILTER_DELETE)); removeAllFiltersButton.setStyleName(BaseTheme.BUTTON_LINK); removeAllFiltersButton.setDescription("Click to remove ALL filters. Hint: " + "Double-click on a column header for removing its filter."); removeAllFiltersButton.setEnabled(false); removeAllFiltersButton.setDisableOnClick(true); removeAllFiltersButton.addClickListener((Button.ClickEvent event) -> { getUserDataTablePanel().removeAllTableFilters(); });/*from w w w . ja v a 2 s . c om*/ } return removeAllFiltersButton; }
From source file:edu.kit.dama.ui.admin.administration.user.UserDataForm.java
License:Apache License
private Embedded getRegisterUserButton() { if (registerUserEmbeddedIcon == null) { String id = "registerUserButton"; LOGGER.debug("Building " + DEBUG_ID_PREFIX + id + " ..."); registerUserEmbeddedIcon = new Embedded("", new ThemeResource(IconContainer.USER_NEW)); registerUserEmbeddedIcon.setId(DEBUG_ID_PREFIX + id); registerUserEmbeddedIcon.addStyleName("myclickablecomponent"); registerUserEmbeddedIcon.addClickListener((MouseEvents.ClickEvent event) -> { UIComponentTools.showWarning("User registration only possible via login page."); });//from w w w. j a v a2 s . com } return registerUserEmbeddedIcon; }
From source file:edu.kit.dama.ui.admin.administration.user.UserDataTablePanel.java
License:Apache License
protected final void addTableFilter(String filterExpression, String columnId, UserDataFilter.SearchSpace searchSpace) { // Add requested filter IndexedContainer container = (IndexedContainer) getUserDataTable().getContainerDataSource(); UserDataFilter userDataFilter = new UserDataFilter(filterExpression, columnId, searchSpace); container.addContainerFilter(userDataFilter); filters.put(columnId, new FilterProperties<>(filterExpression, searchSpace)); // Set filter icon at corresponding table columns if missing ThemeResource filterAddIcon = new ThemeResource(IconContainer.FILTER_ADD); if (!filterAddIcon.equals(getUserDataTable().getColumnIcon(columnId))) { // Set missing filterAddIcon getUserDataTable().setColumnIcon(columnId, filterAddIcon); }// w ww . j ava2s . com }
From source file:edu.kit.dama.ui.admin.administration.usergroup.UserGroupAdministrationTab.java
License:Apache License
private Button getAddFilterButton() { if (addFilterButton == null) { String id = "addFilterButton"; LOGGER.debug("Building " + DEBUG_ID_PREFIX + id + " ..."); addFilterButton = new Button(); addFilterButton.setId(DEBUG_ID_PREFIX + id); addFilterButton.setIcon(new ThemeResource(IconContainer.FILTER_ADD)); addFilterButton.setStyleName(BaseTheme.BUTTON_LINK); addFilterButton.setDescription("Click to add a table column filter"); addFilterButton.addClickListener((Button.ClickEvent event) -> { openFilterWindow();/*from w w w . j a v a 2s . c o m*/ }); } return addFilterButton; }
From source file:edu.kit.dama.ui.admin.administration.usergroup.UserGroupAdministrationTab.java
License:Apache License
protected final Button getRemoveAllFiltersButton() { if (removeAllFiltersButton == null) { String id = "removeAllFiltersButton"; LOGGER.debug("Building " + DEBUG_ID_PREFIX + id + " ..."); removeAllFiltersButton = new Button(); removeAllFiltersButton.setId(DEBUG_ID_PREFIX + id); removeAllFiltersButton.setIcon(new ThemeResource(IconContainer.FILTER_DELETE)); removeAllFiltersButton.setStyleName(BaseTheme.BUTTON_LINK); removeAllFiltersButton.setDescription("Click to remove ALL filters. Hint: " + "Double-click on a column header for removing its filter."); removeAllFiltersButton.setEnabled(false); removeAllFiltersButton.setDisableOnClick(true); removeAllFiltersButton.addClickListener((Button.ClickEvent event) -> { getUserGroupTablePanel().removeAllTableFilters(); });/*from w w w . j av a 2 s.c om*/ } return removeAllFiltersButton; }