List of usage examples for com.vaadin.ui HorizontalLayout removeComponent
@Override public void removeComponent(Component c)
From source file:at.meikel.nentis.Nentis.java
License:Apache License
private void initMain(TabSheet tabSheet) { final VerticalLayout mainTab = new VerticalLayout(); tabSheet.addTab(mainTab);//from ww w . j av a 2 s.c om tabSheet.getTab(mainTab).setCaption("Main"); final HorizontalLayout buttons = new HorizontalLayout(); mainTab.addComponent(buttons); final VerticalLayout state = new VerticalLayout(); mainTab.addComponent(state); final VerticalLayout info = new VerticalLayout(); mainTab.addComponent(info); Button createTicket = new Button("Create a new ticket"); createTicket.addListener(new Button.ClickListener() { public void buttonClick(ClickEvent clickEvent) { state.removeAllComponents(); Ticket ticket = nentisApi.createTicket("Ticket (" + new Date() + ")"); state.addComponent( new Label("Ticket #" + ticket.getId() + " [" + ticket.getDescription() + "] created.")); } }); buttons.addComponent(createTicket); Button listAllTickets = new Button("List all existing tickets"); listAllTickets.addListener(new Button.ClickListener() { public void buttonClick(ClickEvent clickEvent) { state.removeAllComponents(); List<Ticket> allTickets = nentisApi.getAllTickets(); info.removeAllComponents(); if (allTickets != null) { for (Ticket ticket : allTickets) { info.addComponent(new Label( "Ticket #" + ticket.getId() + " [" + ticket.getDescription() + "] created.")); } } } }); buttons.addComponent(listAllTickets); final Button openSubWindow = new Button("Open a sub window"); openSubWindow.addListener(new Button.ClickListener() { public void buttonClick(ClickEvent clickEvent) { buttons.removeComponent(openSubWindow); Window subWindow = new Window("Sub window"); mainWindow.addWindow(subWindow); } }); buttons.addComponent(openSubWindow); }
From source file:com.adonis.ui.menu.Menu.java
private void createViewButtonWithEditableImage(final String name, String caption, String nameImage) { Button button = new Button(caption, new ClickListener() { @Override/*w w w . j a v a 2 s . co m*/ public void buttonClick(ClickEvent event) { navigator.navigateTo(name); } }); button.setPrimaryStyleName(ValoTheme.BUTTON_FRIENDLY); // button.setWidth(50, Unit.PERCENTAGE); image.setWidth(90, Unit.PIXELS); image.setHeight(90, Unit.PIXELS); FileReader.createDirectoriesFromCurrent(getInitialPath()); final Image image = new Image("", new ThemeResource("img/" + nameImage)); try { FileReader.copyFile(VaadinUtils.getResourcePath(nameImage), VaadinUtils.getInitialPath() + File.separator + nameImage); image.setSource(new FileResource(new File(VaadinUtils.getInitialPath() + File.separator + nameImage))); } catch (IOException e) { e.printStackTrace(); image.setSource(new ThemeResource("img/" + nameImage)); } // image.setWidth(50, Unit.PERCENTAGE); image.setWidth(90, Unit.PIXELS); image.setHeight(90, Unit.PIXELS); HorizontalLayout horizontalLayout = new HorizontalLayout(); horizontalLayout.setPrimaryStyleName(ValoTheme.MENU_ITEM); horizontalLayout.addComponents(image, button); image.addClickListener(new MouseEvents.ClickListener() { @Override public void click(MouseEvents.ClickEvent event) { uploadFieldImage = new UploadField(); uploadFieldImage.setAcceptFilter("image/*"); uploadFieldImage.getUpload().addListener(new com.vaadin.v7.ui.Upload.FailedListener() { @Override public void uploadFailed(com.vaadin.v7.ui.Upload.FailedEvent event) { uploadFieldImage.clearDefaulLayout(); horizontalLayout.removeComponent(uploadFieldImage); } private static final long serialVersionUID = 1L; }); horizontalLayout.addComponent(uploadFieldImage, 2); uploadFieldImage.getUpload().addListener(new com.vaadin.v7.ui.Upload.SucceededListener() { @Override public void uploadSucceeded(com.vaadin.v7.ui.Upload.SucceededEvent event) { File file = (File) uploadFieldImage.getValue(); try { showUploadedImage(uploadFieldImage, image, file.getName(), nameImage); } catch (IOException e) { e.printStackTrace(); } uploadFieldImage.clearDefaulLayout(); horizontalLayout.removeComponent(uploadFieldImage); } }); uploadFieldImage.setFieldType(UploadField.FieldType.FILE); horizontalLayout.markAsDirty(); // image.setWidth(50, Unit.PERCENTAGE); image.setWidth(90, Unit.PIXELS); image.setHeight(90, Unit.PIXELS); image.setVisible(false); image.markAsDirty(); horizontalLayout.addComponent(image, 0); } }); button.setVisible(true); image.setVisible(true); menuItemsLayout.addComponents(horizontalLayout); viewButtons.put(name, button); }
From source file:com.foc.vaadin.gui.xmlForm.FocXMLLayout.java
License:Apache License
@Override public void removedFromNavigator() { if (FocWebApplication.getInstanceForThread().isMobile() && validationLayout != null) { FocWebVaadinWindow focWebVaadinWindow = ((FocWebVaadinWindow) getMainWindow()); if (focWebVaadinWindow != null && focWebVaadinWindow.getCentralHeader() != null) { HorizontalLayout centralHeader = focWebVaadinWindow.getCentralHeader(); centralHeader.removeComponent(validationLayout); }//from w ww . ja v a 2 s. c o m } }
From source file:com.jiangyifen.ec2.ui.mgr.system.tabsheet.SystemLicence.java
/** * added by chb 20140520//from ww w . j a va 2s . co m * @return */ private VerticalLayout updateLicenseComponent() { VerticalLayout licenseUpdateLayout = new VerticalLayout(); final VerticalLayout textAreaPlaceHolder = new VerticalLayout(); final HorizontalLayout buttonPlaceHolder = new HorizontalLayout(); buttonPlaceHolder.setSpacing(true); // final Button updateButton = new Button("License"); updateButton.setData("show"); // final Button cancelButton = new Button("?"); // final TextArea licenseTextArea = new TextArea(); licenseTextArea.setColumns(30); licenseTextArea.setRows(5); licenseTextArea.setWordwrap(true); licenseTextArea.setInputPrompt("??"); //Layout buttonPlaceHolder.addComponent(updateButton); licenseUpdateLayout.addComponent(textAreaPlaceHolder); licenseUpdateLayout.addComponent(buttonPlaceHolder); // cancelButton.addListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { textAreaPlaceHolder.removeAllComponents(); buttonPlaceHolder.removeComponent(cancelButton); updateButton.setData("show"); updateButton.setCaption("License"); } }); updateButton.addListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { if (((String) event.getButton().getData()).equals("show")) { textAreaPlaceHolder.removeAllComponents(); textAreaPlaceHolder.addComponent(licenseTextArea); buttonPlaceHolder.addComponent(cancelButton); event.getButton().setData("updateAndHide"); event.getButton().setCaption("??"); } else if (((String) event.getButton().getData()).equals("updateAndHide")) { StringReader stringReader = new StringReader( StringUtils.trimToEmpty((String) licenseTextArea.getValue())); Properties props = new Properties(); try { props.load(stringReader); } catch (IOException e) { e.printStackTrace(); } stringReader.close(); // Boolean isValidvalidateLicense(licenseTextArea.getValue()); String license_date = props.getProperty(LicenseManager.LICENSE_DATE); String license_count = props.getProperty(LicenseManager.LICENSE_COUNT); String license_localmd5 = props.getProperty(LicenseManager.LICENSE_LOCALMD5); // Boolean isMatch = regexMatchCheck(license_date, license_count, license_localmd5); if (isMatch) { Map<String, String> licenseMap = new HashMap<String, String>(); //?? // String license_count = (String)props.get(LicenseManager.LICENSE_COUNT); license_count = license_count == null ? "" : license_count; licenseMap.put(LicenseManager.LICENSE_COUNT, license_count); //? // String license_date = (String)props.get(LicenseManager.LICENSE_DATE); license_date = license_date == null ? "" : license_date; licenseMap.put(LicenseManager.LICENSE_DATE, license_date); //??? // String license_localmd5 = (String)props.get(LicenseManager.LICENSE_LOCALMD5); license_localmd5 = license_localmd5 == null ? "" : license_localmd5; licenseMap.put(LicenseManager.LICENSE_LOCALMD5, license_localmd5); //?License Map<String, String> resultMap = LicenseManager.licenseValidate(licenseMap); String validateResult = resultMap.get(LicenseManager.LICENSE_VALIDATE_RESULT); if (LicenseManager.LICENSE_VALID.equals(validateResult)) { //continue } else { NotificationUtil.showWarningNotification(SystemLicence.this, "License ?License"); return; } try { URL resourceurl = SystemLicence.class.getResource(LicenseManager.LICENSE_FILE); //System.err.println("chb: SystemLicense"+resourceurl.getPath()); OutputStream fos = new FileOutputStream(resourceurl.getPath()); props.store(fos, "license"); } catch (Exception e) { e.printStackTrace(); NotificationUtil.showWarningNotification(SystemLicence.this, "License "); return; } textAreaPlaceHolder.removeAllComponents(); buttonPlaceHolder.removeComponent(cancelButton); updateButton.setData("show"); updateButton.setCaption("License"); LicenseManager.loadLicenseFile(LicenseManager.LICENSE_FILE.substring(1)); // LicenseManager.loadLicenseFile(licenseFilename) refreshLicenseInfo(); NotificationUtil.showWarningNotification(SystemLicence.this, "License ?,?"); } else { NotificationUtil.showWarningNotification(SystemLicence.this, "License ??"); } } } /** * license ? * @param license_date * @param license_count * @param license_localmd5 * @return */ private Boolean regexMatchCheck(String license_date, String license_count, String license_localmd5) { if (StringUtils.isEmpty(license_date) || StringUtils.isEmpty(license_count) || StringUtils.isEmpty(license_localmd5)) { return false; } String date_regex = "^\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2}$"; //? String count_regex = "^\\d+$"; //? String md5_32_regex = "^\\w{32}$"; //? return license_localmd5.matches(md5_32_regex) && license_date.matches(date_regex) && license_count.matches(count_regex); } }); return licenseUpdateLayout; }
From source file:de.symeda.sormas.ui.dashboard.diagram.AbstractEpiCurveComponent.java
License:Open Source License
private HorizontalLayout createHeader() { HorizontalLayout epiCurveHeaderLayout = new HorizontalLayout(); epiCurveHeaderLayout.setWidth(100, Unit.PERCENTAGE); epiCurveHeaderLayout.setSpacing(true); CssStyles.style(epiCurveHeaderLayout, CssStyles.VSPACE_4); epiCurveLabel = new Label(I18nProperties.getString(Strings.headingEpiCurve)); epiCurveLabel.setSizeUndefined();/* w w w. j a v a 2 s. com*/ CssStyles.style(epiCurveLabel, CssStyles.H2, CssStyles.VSPACE_4, CssStyles.VSPACE_TOP_NONE); epiCurveHeaderLayout.addComponent(epiCurveLabel); epiCurveHeaderLayout.setComponentAlignment(epiCurveLabel, Alignment.BOTTOM_LEFT); epiCurveHeaderLayout.setExpandRatio(epiCurveLabel, 1); // "Expand" and "Collapse" buttons Button expandEpiCurveButton = new Button("", VaadinIcons.EXPAND); CssStyles.style(expandEpiCurveButton, CssStyles.BUTTON_SUBTLE); expandEpiCurveButton.addStyleName(CssStyles.VSPACE_NONE); Button collapseEpiCurveButton = new Button("", VaadinIcons.COMPRESS); CssStyles.style(collapseEpiCurveButton, CssStyles.BUTTON_SUBTLE); collapseEpiCurveButton.addStyleName(CssStyles.VSPACE_NONE); expandEpiCurveButton.addClickListener(e -> { externalExpandListener.accept(true); epiCurveHeaderLayout.removeComponent(expandEpiCurveButton); epiCurveHeaderLayout.addComponent(collapseEpiCurveButton); epiCurveHeaderLayout.setComponentAlignment(collapseEpiCurveButton, Alignment.MIDDLE_RIGHT); }); collapseEpiCurveButton.addClickListener(e -> { externalExpandListener.accept(false); epiCurveHeaderLayout.removeComponent(collapseEpiCurveButton); epiCurveHeaderLayout.addComponent(expandEpiCurveButton); epiCurveHeaderLayout.setComponentAlignment(expandEpiCurveButton, Alignment.MIDDLE_RIGHT); }); epiCurveHeaderLayout.addComponent(expandEpiCurveButton); epiCurveHeaderLayout.setComponentAlignment(expandEpiCurveButton, Alignment.MIDDLE_RIGHT); return epiCurveHeaderLayout; }
From source file:de.symeda.sormas.ui.dashboard.map.DashboardMapComponent.java
License:Open Source License
private HorizontalLayout createHeader() { HorizontalLayout mapHeaderLayout = new HorizontalLayout(); mapHeaderLayout.setWidth(100, Unit.PERCENTAGE); mapHeaderLayout.setSpacing(true);//from ww w . j a v a 2 s . co m CssStyles.style(mapHeaderLayout, CssStyles.VSPACE_4); Label mapLabel = new Label(); if (dashboardDataProvider.getDashboardType() == DashboardType.SURVEILLANCE) { mapLabel.setValue(I18nProperties.getString(Strings.headingCaseStatusMap)); } else { mapLabel.setValue(I18nProperties.getString(Strings.headingContactMap)); } mapLabel.setSizeUndefined(); CssStyles.style(mapLabel, CssStyles.H2, CssStyles.VSPACE_4, CssStyles.VSPACE_TOP_NONE); mapHeaderLayout.addComponent(mapLabel); mapHeaderLayout.setComponentAlignment(mapLabel, Alignment.BOTTOM_LEFT); mapHeaderLayout.setExpandRatio(mapLabel, 1); // "Expand" and "Collapse" buttons Button expandMapButton = new Button("", VaadinIcons.EXPAND); CssStyles.style(expandMapButton, CssStyles.BUTTON_SUBTLE); expandMapButton.addStyleName(CssStyles.VSPACE_NONE); Button collapseMapButton = new Button("", VaadinIcons.COMPRESS); CssStyles.style(collapseMapButton, CssStyles.BUTTON_SUBTLE); collapseMapButton.addStyleName(CssStyles.VSPACE_NONE); expandMapButton.addClickListener(e -> { externalExpandListener.accept(true); mapHeaderLayout.removeComponent(expandMapButton); mapHeaderLayout.addComponent(collapseMapButton); mapHeaderLayout.setComponentAlignment(collapseMapButton, Alignment.MIDDLE_RIGHT); }); collapseMapButton.addClickListener(e -> { externalExpandListener.accept(false); mapHeaderLayout.removeComponent(collapseMapButton); mapHeaderLayout.addComponent(expandMapButton); mapHeaderLayout.setComponentAlignment(expandMapButton, Alignment.MIDDLE_RIGHT); }); mapHeaderLayout.addComponent(expandMapButton); mapHeaderLayout.setComponentAlignment(expandMapButton, Alignment.MIDDLE_RIGHT); return mapHeaderLayout; }
From source file:de.symeda.sormas.ui.dashboard.surveillance.SurveillanceDiseaseCarouselLayout.java
License:Open Source License
private HorizontalLayout createEpiCurveAndMapLayout() { HorizontalLayout epiCurveAndMapLayout = new HorizontalLayout(); epiCurveAndMapLayout.setWidth(100, Unit.PERCENTAGE); final int BASE_HEIGHT = 480; epiCurveAndMapLayout.setHeight(BASE_HEIGHT, Unit.PIXELS); epiCurveAndMapLayout.addComponent(epiCurveComponent); epiCurveAndMapLayout.addComponent(mapComponent); epiCurveComponent.setExpandListener(expanded -> { if (expanded) { removeComponent(statisticsComponent); epiCurveAndMapLayout.removeComponent(mapComponent); epiCurveAndMapLayout.setHeight(100, Unit.PERCENTAGE); setHeight(100, Unit.PERCENTAGE); } else {// ww w . ja v a 2s . c o m addComponent(statisticsComponent, 1); epiCurveAndMapLayout.addComponent(mapComponent, 1); epiCurveAndMapLayout.setHeight(BASE_HEIGHT, Unit.PIXELS); setHeightUndefined(); } if (externalExpandListener != null) { externalExpandListener.accept(expanded); } }); mapComponent.setExpandListener(expanded -> { if (expanded) { removeComponent(statisticsComponent); epiCurveAndMapLayout.removeComponent(epiCurveComponent); epiCurveAndMapLayout.setHeight(100, Unit.PERCENTAGE); setHeight(100, Unit.PERCENTAGE); } else { addComponent(statisticsComponent, 1); epiCurveAndMapLayout.addComponent(epiCurveComponent, 0); epiCurveAndMapLayout.setHeight(BASE_HEIGHT, Unit.PIXELS); setHeightUndefined(); } if (externalExpandListener != null) { externalExpandListener.accept(expanded); } }); return epiCurveAndMapLayout; }
From source file:de.symeda.sormas.ui.dashboard.surveillance.SurveillanceOverviewLayout.java
License:Open Source License
private void addDiseaseBurdenView() { HorizontalLayout layout = new HorizontalLayout(); layout.setWidth(100, Unit.PERCENTAGE); layout.setMargin(false);// www . j a va2s . c o m layout.addComponent(diseaseTileViewLayout); layout.setExpandRatio(diseaseTileViewLayout, 1); // "Expand" and "Collapse" buttons Button showTableViewButton = new Button("", VaadinIcons.TABLE); CssStyles.style(showTableViewButton, CssStyles.BUTTON_SUBTLE); showTableViewButton.addStyleName(CssStyles.VSPACE_NONE); Button showTileViewButton = new Button("", VaadinIcons.SQUARE_SHADOW); CssStyles.style(showTileViewButton, CssStyles.BUTTON_SUBTLE); showTileViewButton.addStyleName(CssStyles.VSPACE_NONE); showTableViewButton.addClickListener(e -> { layout.removeComponent(diseaseTileViewLayout); layout.addComponent(diseaseBurdenComponent); layout.setExpandRatio(diseaseBurdenComponent, 1); layout.removeComponent(showTableViewButton); layout.addComponent(showTileViewButton); layout.setComponentAlignment(showTileViewButton, Alignment.TOP_RIGHT); }); showTileViewButton.addClickListener(e -> { layout.removeComponent(diseaseBurdenComponent); layout.addComponent(diseaseTileViewLayout); layout.setExpandRatio(diseaseTileViewLayout, 1); layout.removeComponent(showTileViewButton); layout.addComponent(showTableViewButton); layout.setComponentAlignment(showTableViewButton, Alignment.TOP_RIGHT); }); layout.addComponent(showTableViewButton); layout.setComponentAlignment(showTableViewButton, Alignment.TOP_RIGHT); diseaseBurdenView = layout; addComponent(diseaseBurdenView, BURDEN_LOC); if (UserRole.isSupervisor(UserProvider.getCurrent().getUser().getUserRoles())) showTableViewButton.click(); }
From source file:de.symeda.sormas.ui.statistics.StatisticsFilterComponent.java
License:Open Source License
private HorizontalLayout createFilterAttributeElement() { HorizontalLayout filterAttributeLayout = new HorizontalLayout(); filterAttributeLayout.setSpacing(true); filterAttributeLayout.setWidth(100, Unit.PERCENTAGE); MenuBar filterAttributeDropdown = new MenuBar(); filterAttributeDropdown.setCaption(I18nProperties.getCaption(Captions.statisticsAttribute)); MenuItem filterAttributeItem = filterAttributeDropdown .addItem(I18nProperties.getCaption(Captions.statisticsAttributeSelect), null); MenuBar filterSubAttributeDropdown = new MenuBar(); filterSubAttributeDropdown.setCaption(I18nProperties.getCaption(Captions.statisticsAttributeSpecification)); MenuItem filterSubAttributeItem = filterSubAttributeDropdown.addItem(SPECIFY_YOUR_SELECTION, null); // Add attribute groups for (StatisticsCaseAttributeGroup attributeGroup : StatisticsCaseAttributeGroup.values()) { MenuItem attributeGroupItem = filterAttributeItem.addItem(attributeGroup.toString(), null); attributeGroupItem.setEnabled(false); // Add attributes belonging to the current group for (StatisticsCaseAttribute attribute : attributeGroup.getAttributes()) { Command attributeCommand = selectedItem -> { selectedAttribute = attribute; selectedSubAttribute = null; filterAttributeItem.setText(attribute.toString()); // Add style to keep chosen item selected and remove it from all other items for (MenuItem menuItem : filterAttributeItem.getChildren()) { menuItem.setStyleName(null); }//from w w w .j ava 2s.c o m selectedItem.setStyleName("selected-filter"); // Reset the sub attribute dropdown filterSubAttributeItem.removeChildren(); filterSubAttributeItem.setText(SPECIFY_YOUR_SELECTION); if (attribute.getSubAttributes().length > 0) { for (StatisticsCaseSubAttribute subAttribute : attribute.getSubAttributes()) { if (subAttribute.isUsedForFilters()) { Command subAttributeCommand = selectedSubItem -> { selectedSubAttribute = subAttribute; filterSubAttributeItem.setText(subAttribute.toString()); // Add style to keep chosen item selected and remove it from all other items for (MenuItem menuItem : filterSubAttributeItem.getChildren()) { menuItem.setStyleName(null); } selectedSubItem.setStyleName("selected-filter"); updateFilterElement(); }; filterSubAttributeItem.addItem(subAttribute.toString(), subAttributeCommand); } } // Only add the sub attribute dropdown if there are any sub attributes that are relevant for the filters section if (filterSubAttributeItem.getChildren() != null && filterSubAttributeItem.getChildren().size() > 0) { filterAttributeLayout.addComponent(filterSubAttributeDropdown); filterAttributeLayout.setExpandRatio(filterSubAttributeDropdown, 1); } else { filterAttributeLayout.removeComponent(filterSubAttributeDropdown); } } else { filterAttributeLayout.removeComponent(filterSubAttributeDropdown); } updateFilterElement(); }; filterAttributeItem.addItem(attribute.toString(), attributeCommand); } } filterAttributeLayout.addComponent(filterAttributeDropdown); filterAttributeLayout.setExpandRatio(filterAttributeDropdown, 0); return filterAttributeLayout; }
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/*w w w.jav a2s. c om*/ 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> }