public SettingsLayout(String userName, MainPage mainPage) { this.mainPage = mainPage; this.userName = userName; WebApplicationContext context = (WebApplicationContext) mainPage.getContext(); WebBrowser webBrowser = context.getBrowser(); height = webBrowser.getScreenHeight() - 310; setMargin(true); setSpacing(true); vl.setMargin(true); vl.setSpacing(true); panelEmail.setWidth("100%"); addComponent(hl); hl.setFirstComponent(panelEmail); hl.setSecondComponent(panelPassword); oldEmail.setValue(GeneralController.getEmailFromUserName(userName)); oldEmail.setWidth("250"); oldEmail.setReadOnly(false); newEmail.setWidth("250"); newEmail.addValidator(new EmailValidator("Email должен содержать знак '@' и полный домен.")); saveButton = new Button("Сохранить изменения"); saveButton.setVisible(true); saveButton.setIcon(new ThemeResource("icons/32/save.png")); resetUserPasswordButton.setVisible(true); resetUserPasswordButton.setIcon(new ThemeResource("icons/32/group_key.png")); resetUserPasswordButton.addListener(this); oldEmailInscription.setReadOnly(true); panelEmail.addComponent(oldEmailInscription); panelEmail.addComponent(oldEmail); panelEmail.addComponent(newEmail); panelEmail.addComponent(saveButton); panelPassword.addComponent(label); panelPassword.addComponent(resetUserPasswordButton); panelEmail.setHeight(height); panelPassword.setHeight(height); saveButton.addListener(this); }
@Override public void attach() { super.attach(); rootPanel = new Panel("Connect to..."); rootPanel.addStyleName(ValoTheme.PANEL_WELL); rootPanel.setWidth("500px"); rootPanel.setHeight("300px"); recreateRootLayout(); setSizeFull(); addComponent(rootPanel); setComponentAlignment(rootPanel, Alignment.MIDDLE_CENTER); }
@SuppressWarnings({"deprecation", "serial"}) private void updateComponents(final User user) { if (container != null) { container.removeAllComponents(); } container = new Panel(); root = new Panel(); root.setStyle(Reindeer.PANEL_LIGHT); container.setHeight("100%"); container.setStyle(Reindeer.PANEL_LIGHT); setCompositionRoot(container); // Create the Form newExpForm = new Form(); newExpForm.setCaption("New Experiment"); newExpForm.setWriteThrough(false); // we want explicit 'apply' newExpForm.setInvalidCommitted(false); // no invalid values in data model // Determines which properties are shown, and in which order: expNameField = new TextField("Experiment Name:"); expNameField.setStyle(Reindeer.TEXTFIELD_SMALL); expNameField.setRequired(true); expNameField.setRequiredError("EXPERIMENT NAME CAN NOT BE EMPTY!"); expNameField.setWidth("350px"); expNameField.setMaxLength(70); speciesField = new TextField("Species:"); speciesField.setStyle(Reindeer.TEXTFIELD_SMALL); speciesField.setRequired(true); speciesField.setRequiredError("EXPERIMENT SPECIES CAN NOT BE EMPTY!"); speciesField.setWidth("350px"); speciesField.setMaxLength(70); sampleTypeField = new TextField("Sample Type:"); sampleTypeField.setStyle(Reindeer.TEXTFIELD_SMALL); sampleTypeField.setRequired(true); sampleTypeField.setRequiredError("EXPERIMENT SAMPLE TYPE CAN NOT BE EMPTY!"); sampleTypeField.setWidth("350px"); sampleTypeField.setMaxLength(70); sampleProcessingField = new TextField("Sample Processing:"); sampleProcessingField.setStyle(Reindeer.TEXTFIELD_SMALL); sampleProcessingField.setRequired(true); sampleProcessingField.setRequiredError("EXPERIMENT SAMPLE PROCESSING CAN NOT BE EMPTY!"); sampleProcessingField.setWidth("350px"); sampleProcessingField.setMaxLength(70); instrumentTypeField = new TextField("Instrument Type:"); instrumentTypeField.setStyle(Reindeer.TEXTFIELD_SMALL); instrumentTypeField.setRequired(true); instrumentTypeField.setRequiredError("EXPERIMENT INSTURMENT TYPE CAN NOT BE EMPTY!"); instrumentTypeField.setWidth("350px"); instrumentTypeField.setMaxLength(70); fragModeField = new TextField("Frag Mode:"); fragModeField.setStyle(Reindeer.TEXTFIELD_SMALL); fragModeField.setRequired(true); fragModeField.setRequiredError("EXPERIMENT FRAG MODE CAN NOT BE EMPTY!"); fragModeField.setWidth("350px"); fragModeField.setMaxLength(70); UploadedByNameField = new TextField("Uploaded By:"); UploadedByNameField.setStyle(Reindeer.TEXTFIELD_SMALL); UploadedByNameField.setRequired(true); UploadedByNameField.setRequiredError("EXPERIMENT UPLOADED BY CAN NOT BE EMPTY!"); UploadedByNameField.setValue(user.getUsername()); UploadedByNameField.setEnabled(false); UploadedByNameField.setWidth("350px"); UploadedByNameField.setMaxLength(70); emailField = new TextField("Email:"); emailField.setStyle(Reindeer.TEXTFIELD_SMALL); emailField.setRequired(true); emailField.setValue(user.getEmail()); emailField.setEnabled(false); emailField.setRequiredError("EXPERIMENT EMAIL CAN NOT BE EMPTY!"); emailField.setWidth("350px"); emailField.setMaxLength(70); descriptionField = new TextArea("Description:"); descriptionField.setStyle(Reindeer.TEXTFIELD_SMALL); descriptionField.setRequired(true); descriptionField.setRequiredError("EXPERIMENT Description CAN NOT BE EMPTY!"); descriptionField.setWidth("350px"); descriptionField.setMaxLength(950); publicationLinkField = new TextField("Publication Link:"); publicationLinkField.setStyle(Reindeer.TEXTFIELD_SMALL); publicationLinkField.setWidth("350px"); publicationLinkField.setMaxLength(300); newExpForm.addField(Integer.valueOf(1), expNameField); newExpForm.addField(Integer.valueOf(2), descriptionField); newExpForm.addField(Integer.valueOf(3), speciesField); newExpForm.addField(Integer.valueOf(4), sampleTypeField); newExpForm.addField(Integer.valueOf(5), sampleProcessingField); newExpForm.addField(Integer.valueOf(6), instrumentTypeField); newExpForm.addField(Integer.valueOf(7), fragModeField); newExpForm.addField(Integer.valueOf(8), UploadedByNameField); newExpForm.addField(Integer.valueOf(9), emailField); newExpForm.addField(Integer.valueOf(10), publicationLinkField); // Add form to layout container.addComponent(newExpForm); Panel p = new Panel(); Label l = new Label( "<h4 style='color:blue'>Or Update Existing Experiments !</h4><h4 style='color:blue'>For New Experiment Please Leave Experiment ID Blank!</h4><h4 style='color:blue'><strong style='color:red'>* </strong> For New Experiment Please Remember to Upload Protein file first!</h4>"); l.setContentMode(Label.CONTENT_XHTML); p.addComponent(l); container.addComponent(p); // Create the Form Form existExpForm = new Form(); existExpForm.setCaption("Exist Experiments"); expList = eh.getExperiments(null); List<String> strExpList = new ArrayList<String>(); for (ExperimentBean exp : expList.values()) { if (user.getEmail().equalsIgnoreCase("*****@*****.**") || exp.getEmail().equalsIgnoreCase(user.getEmail())) { String str = exp.getExpId() + " " + exp.getName() + " ( " + exp.getUploadedByName() + " )"; strExpList.add(str); } } select = new Select("Experiment ID", strExpList); select.setImmediate(true); select.addListener( new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { Object o = select.getValue(); if (o != null) { String str = select.getValue().toString(); String[] strArr = str.split("\t"); int id = (Integer.valueOf(strArr[0])); ExperimentBean expDet = expList.get(id); if (expDetails != null) { expDetails.removeAllComponents(); if (expDet.getProteinsNumber() == 0) { Label l = new Label("<h4 style='color:red'>1) Protein File is Missing</h4>"); l.setContentMode(Label.CONTENT_XHTML); expDetails.addComponent(l); } else { Label l = new Label("<h4 style='color:blue'>1) Protein File is Uploaded</h4>"); l.setContentMode(Label.CONTENT_XHTML); expDetails.addComponent(l); } if (expDet.getFractionsNumber() == 0) { Label l = new Label("<h4 style='color:red'>2) Fraction File is Missing</h4>"); l.setContentMode(Label.CONTENT_XHTML); expDetails.addComponent(l); } else { Label l = new Label("<h4 style='color:blue'>2) Fraction File Uploaded</h4>"); l.setContentMode(Label.CONTENT_XHTML); expDetails.addComponent(l); } // if (expDet.getFractionRange() == 0) { // Label l = new Label("<h4 style='color:red'>3) Fraction // Range File is Missing</h4>"); // l.setContentMode(Label.CONTENT_XHTML); // expDetails.addComponent(l); // } else { // Label l = new Label("<h4 style='color:blue'>3) // Fraction Range File Uploaded</h4>"); // l.setContentMode(Label.CONTENT_XHTML); // expDetails.addComponent(l); // } if (expDet.getPeptidesNumber() == 0) { Label l = new Label("<h4 style='color:red'>3) Peptides File is Missing</h4>"); l.setContentMode(Label.CONTENT_XHTML); expDetails.addComponent(l); } else { Label l = new Label("<h4 style='color:blue'>3) Peptides File Uploaded</h4>"); l.setContentMode(Label.CONTENT_XHTML); expDetails.addComponent(l); } } } else { expDetails.removeAllComponents(); Label labelDetails = new Label( "<h4 style='color:red;'>Please Select Experiment To Show the Details.</h4>"); labelDetails.setContentMode(Label.CONTENT_XHTML); expDetails.addComponent(labelDetails); } } }); select.setWidth("60%"); existExpForm.addField(Integer.valueOf(1), select); // Add form to layout VerticalLayout vlo = new VerticalLayout(); if (hslo != null) { vlo.removeComponent(hslo); } hslo = new HorizontalLayout(); hslo.setSizeFull(); hslo.addComponent(existExpForm); vlo.addComponent(hslo); if (removeExperimentLayout != null) { hslo.removeComponent(removeExperimentLayout); } removeExperimentLayout = this.getRemoveForm(user.getEmail()); hslo.addComponent(removeExperimentLayout); hslo.setComponentAlignment(removeExperimentForm, Alignment.MIDDLE_CENTER); vlo.addComponent(hslo); container.addComponent(vlo); // Create the Upload component. upload = new Upload(null, this); upload.setStyleName("small"); upload.setVisible(true); upload.setHeight("30px"); upload.setButtonCaption("ADD / EDIT EXPERIMENT !"); // ***************************************************** upload.addListener( new Upload.StartedListener() { @SuppressWarnings("static-access") @Override public void uploadStarted(StartedEvent event) { try { Thread.currentThread().sleep(1000); Thread t = new Thread( new Runnable() { @Override public void run() { pi.setVisible(true); } }); t.start(); t.join(); } catch (InterruptedException e) { } mainTabs.setReadOnly(true); subTabs.setReadOnly(true); } }); upload.addListener( new Upload.FinishedListener() { @Override public void uploadFinished(FinishedEvent event) { pi.setVisible(false); mainTabs.setReadOnly(false); subTabs.setReadOnly(false); file = new File(event.getFilename()); } }); // *********************************** upload.addListener((Upload.SucceededListener) this); upload.addListener((Upload.FailedListener) this); if (helpNote != null) { vlo.removeComponent(helpNote); } Label label = new Label( "<h4 style='color:red;'>Please upload proteins file first</h4><h4 style='color:red;'>Please upload proteins files in (.txt) format.</h4><h4 style='color:red;'>Upload fraction range file after upload protein fraction file.</h4><h4 style='color:red;'>Upload fraction range file in (.xlsx) format.</h4>"); label.setContentMode(Label.CONTENT_XHTML); helpNote = help.getHelpNote(label); helpNote.setMargin(false, true, true, true); vlo.addComponent(upload); vlo.addComponent(pi); vlo.addComponent(helpNote); vlo.setComponentAlignment(helpNote, Alignment.MIDDLE_RIGHT); expDetails = new Panel("Experiment Details"); Label labelDetails = new Label("<h4 style='color:red;'>Please Select Experiment To Show the Details.</h4>"); labelDetails.setContentMode(Label.CONTENT_XHTML); expDetails.addComponent(labelDetails); vlo.addComponent(expDetails); root.addComponent(vlo); container.addComponent(root); }