Пример #1
0
 private void finalizeFileTableInit() {
   files = new FileTable();
   final RootPanel filePanel = RootPanel.get("fileTable");
   filePanel.add(files);
   connectOutputLocationAndFileTable();
   connectTitleAndFileTable();
 }
Пример #2
0
 private void finalizeSpectrumQa(final List<SpectrumQaParamFileInfo> list) {
   if (list == null || list.isEmpty()) {
     DOM.setStyleAttribute(DOM.getElementById("spectrumQaRow"), "display", "none");
   } else {
     DOM.setStyleAttribute(DOM.getElementById("spectrumQaRow"), "display", "");
     spectrumQaSetupPanel = new SpectrumQaSetupPanel(list);
     final RootPanel rootSpectrumQaPanel = RootPanel.get("spectrumQa");
     rootSpectrumQaPanel.add(spectrumQaSetupPanel);
   }
   showPageContentsAfterLoad();
 }
Пример #3
0
 private void initEditorToggle() {
   final RootPanel togglePanel = RootPanel.get("paramsToggleButton");
   editorToggle =
       new ToggleButton(new Image("images/triright.png"), new Image("images/tridown.png"));
   editorToggle.setDown(false);
   editorToggle.addStyleName("toggle-button");
   togglePanel.add(editorToggle);
   editorToggle.addClickHandler(
       new ClickHandler() {
         @Override
         public void onClick(final ClickEvent event) {
           paramsEditor.setEditorExpanded(editorToggle.isDown());
         }
       });
 }
Пример #4
0
 private void initTitleEditor() {
   final RootPanel titlePanel = RootPanel.get("title");
   title.setVisibleLength(60);
   titlePanel.add(title);
   title.addKeyUpHandler(
       new KeyUpHandler() {
         @Override
         public void onKeyUp(final KeyUpEvent event) {
           userEditedTitle = true;
           updateOutputLocation();
         }
       });
   titleChangeListener = new TitleChangeListener();
   title.addChangeHandler(titleChangeListener);
 }
Пример #5
0
 private void initRunButton() {
   // Run Button ////////////////////////////////////////////
   runButton = new PushButton();
   RootPanel.get("runButton").add(runButton);
   runButton.setEnabled(false);
   runButton.addClickHandler(new RunClickHandler());
 }
Пример #6
0
 private void initAddFilesButton() {
   // Add files button produces a dialog
   addFileButton =
       new PushButton(
           "",
           new ClickHandler() {
             @Override
             public void onClick(final ClickEvent event) {
               final int clientWidth = Window.getClientWidth();
               final int clientHeight = Window.getClientHeight();
               final int popupWidth = clientWidth * 3 / 4;
               final int popupHeight = clientHeight * 3 / 4;
               final int posX = (clientWidth - popupWidth) / 2;
               final int posY = (clientHeight - popupHeight) / 2;
               final FileTreeDialog dialog = new FileTreeDialog(popupWidth, popupHeight);
               dialog.setPopupPosition(posX, posY);
               dialog.setSelectedFilesListener(
                   new SelectedFilesListener() {
                     @Override
                     public void selectedFiles(final FileInfo[] info) {
                       files.addFiles(info);
                     }
                   });
               dialog.show();
             }
           });
   addFileButton.setEnabled(false);
   RootPanel.get("addFileButton").add(addFileButton);
 }
Пример #7
0
  private void initOutputLocation() {
    // currently, the save location is populated deterministically by the combination of
    // the users's input

    final RootPanel outputPanel = RootPanel.get("output");
    output = new TextBox();
    output.setVisibleLength(150);
    output.addChangeHandler(
        new ChangeHandler() {
          @Override
          public void onChange(final ChangeEvent event) {
            outputPathUserSpecified = true;
            updateOutputLocation();
          }
        });
    outputPanel.add(output);

    final RootPanel outputWarning = RootPanel.get("outputWarning");
    outputValidationPanel = new ValidationPanel(2);

    outputWarning.add(outputValidationPanel);

    connectOutputLocationAndFileTable();
    // Fire userChanged to get the output location updated
    userChanged();
    updateOutputLocation();
  }
Пример #8
0
  private void initUserList(final ClientUser[] list) {
    // The user listing is downloaded by an async call.
    final RootPanel userPanel = RootPanel.get("email");
    userPanel.add(users);
    users.addChangeHandler(
        new ChangeHandler() {
          @Override
          public void onChange(final ChangeEvent event) {
            userChanged();
          }
        });
    users.addItem(SELECT_USER_STRING, "");
    userInfo.clear();
    for (final ClientUser user : list) {
      users.addItem(user.getName(), user.getEmail());
      userInfo.put(user.getEmail(), user);
    }

    // Select the user according to the cookie stored
    final String userEmail = Cookies.getCookie("email");
    selectUser(userEmail);
  }
Пример #9
0
 private void finalizeInitReport(
     final Boolean reportEnabled, List<ClientSearchEngine> searchEngines) {
   boolean quameterEnabled = false;
   for (ClientSearchEngine engine : searchEngines) {
     if ("QUAMETER".equals(engine.getEngineConfig().getCode())) {
       quameterEnabled = true;
     }
   }
   if (reportEnabled || quameterEnabled) {
     DOM.setStyleAttribute(DOM.getElementById("reportingRow"), "display", "");
     final RootPanel rootPanel = RootPanel.get("report");
     if (quameterEnabled) {
       quameterCategorySelector = new QuameterCategorySelector(this, this);
       rootPanel.add(quameterCategorySelector);
     }
     if (reportEnabled) {
       reportSetupPanel = new ReportSetupPanel(quameterCategorySelector);
       rootPanel.add(reportSetupPanel);
     }
   } else {
     DOM.setStyleAttribute(DOM.getElementById("reportingRow"), "display", "none");
   }
 }
Пример #10
0
  public SimpleParamsEditorPanel(
      final ServiceAsync serviceAsync,
      final HidesPageContentsWhileLoading contentsHiding,
      Map<String, ClientUser> userInfo) {
    this.serviceAsync = serviceAsync;
    this.userInfo = userInfo;
    selectionController = new ParamSetSelectionController(serviceAsync);
    selectionController.setContentsHiding(contentsHiding);
    validationController = new ValidationController(serviceAsync, selectionController);
    validationController.setContentsHiding(contentsHiding);
    editorElements = new ArrayList();

    contentsHiding.hidePageContentsWhileLoading();
    serviceAsync.login(
        "",
        "",
        new AsyncCallback<Boolean>() { // TODO: real login

          public void onFailure(Throwable caught) {
            contentsHiding.showPageContents();
            handleGlobalError(caught);
          }

          public void onSuccess(Boolean result) {
            contentsHiding.showPageContentsAfterLoad();
          }
        });

    HorizontalPanel hp = new HorizontalPanel();
    RootPanel paramsSelectorPanel = RootPanel.get("paramsSelector");
    paramsSelectorPanel.add(hp);

    selector = new ParamsSelector();
    selectionController.setSelector(selector);
    selectionController.refresh();
    hp.add(selector);

    // save buttons //////////////////////////////////////////////////////////
    PushButton button;
    hp.add(saveButton = new PushButton("Save..."));
    saveButton.addStyleName(ACTION_LINK);
    saveButton.addStyleName(SPACE_AFTER);
    saveButton.addClickListener(
        new ClickListener() {
          public void onClick(Widget widget) {
            save();
          }
        });
    saveButton.setVisible(editorVisible);
    buttons.add(saveButton);

    hp.add(button = new PushButton("Preview..."));
    button.addStyleName(ACTION_LINK);
    button.addStyleName(SPACE_AFTER);
    button.addClickListener(
        new ClickListener() {
          public void onClick(Widget widget) {
            preview();
          }
        });
    buttons.add(button);

    hp.add(deleteButton = new PushButton("Delete..."));
    deleteButton.addStyleName(ACTION_LINK);
    deleteButton.addStyleName(SPACE_AFTER);
    deleteButton.addClickListener(
        new ClickListener() {
          public void onClick(Widget widget) {
            delete();
          }
        });
    buttons.add(deleteButton);

    // description, initially hidden /////////////////////////////////////////////

    HTMLPanel description;
    paramsSelectorPanel.add(
        description = new HTMLPanel("<I>This is a description of the ParameterSet.</I>"));
    description.setSize("500px", "50px");
    description.setStyleName("dottedBorder");
    description.setVisible(false);

    /// Existing DOM //////////////////////////////////////////////////////////////
    // Grab the existing DOM for the parameter rows.

    ExistingDOMPanel edp = new ExistingDOMPanel("paramRow");

    /// database ///////////////////////////////////////////
    {
      ExistingDOMPanel dbrow = new ExistingDOMPanel("paramDbRow");
      Label label = new Label("Database:");
      label.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
      label.setStyleName(PARAMS_LABEL);
      editorElements.add(dbrow.append("database", "paramDbLabel", label, editorVisible));

      final ValidationPanel vp = new ValidationPanel(2);

      dlb = new DatabaseListBox("sequence.database", userInfo);

      final HorizontalPanel p = new HorizontalPanel();

      p.add(dlb);
      // dlb.setStyleName("spaceAfter");
      PushButton pb = new PushButton("Add or Review Database...");
      pb.addStyleName(ACTION_LINK);
      pb.setTitle(
          "Click here to review the selected database and potentially modify it for your own needs.");
      pb.addClickListener(
          new ClickListener() {
            public void onClick(Widget widget) {
              popupDbCurator();
            }
          });
      validationController.add(dlb, "sequence.database", vp);
      p.add(pb);

      // Add undeployer link if enabled.
      serviceAsync.isDatabaseUndeployerEnabled(
          new AsyncCallback<Boolean>() {

            public void onFailure(Throwable caught) {
              // Do nothing, do not add undeploy link.
              throw new RuntimeException(
                  "Can not determine if database undeployer is enabled", caught);
            }

            public void onSuccess(Boolean result) {
              if (result.booleanValue()) {
                PushButton du = new PushButton("Undeploy Database");
                du.addStyleName(ACTION_LINK);
                du.setTitle("Click here to undeploy database from search engines.");
                du.addClickListener(new DatabaseUndeploymentAction(serviceAsync, dlb));
                p.add(du);
              }
            }
          });

      editorElements.add(dbrow.append("database", "paramDbEntry", p, editorVisible));

      editorElements.add(dbrow.append("database", "paramDbValidation", vp, editorVisible));
    }

    /// enzyme /////////////////////////////////////////////

    {
      Label label = new Label("Protease:");
      label.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
      label.setStyleName(PARAMS_LABEL);
      editorElements.add(edp.append("enzyme", LABEL1, label, editorVisible));

      ValidationPanel vp = new ValidationPanel(2);

      ProteaseListBox tb;
      validationController.add(tb = new ProteaseListBox("sequence.enzyme"), "sequence.enzyme", vp);

      editorElements.add(edp.append("enzyme", ENTRY1, tb, editorVisible));

      Label label1 = new Label("Missed Cleavages:");
      label1.setStyleName(PARAMS_LABEL);
      label1.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
      ValidatableTextBox tdb =
          new ValidatableTextBox("sequence.missed_cleavages") {
            protected ClientValue getValueFromString(String value) {
              if ((value == null) || (value.length() == 0)) {
                return null;
              }
              try {
                return new ClientInteger(value);
              } catch (NumberFormatException ignore) {
                ClientValidationList list = new ClientValidationList();
                final ClientValidation cv =
                    new ClientValidation(
                        "Not a number: " + value,
                        "sequence.missed_cleavages",
                        ClientValidation.SEVERITY_ERROR);
                list.add(cv);
                validationController.update("sequence.missed_cleavages", list);
                return null;
              }
            }

            protected String setValueAsString(ClientValue object) {
              return object.toString();
            }

            public void setAllowedValues(List<? extends ClientValue> values) {
              // unused.
            }

            public String getAllowedValuesParam() {
              return null; // no allowed values.
            }
          };
      tdb.setVisibleLength(5);
      editorElements.add(edp.append("enzyme", LABEL2, label1, editorVisible));
      editorElements.add(edp.append("enzyme", ENTRY2, tdb, editorVisible));
      validationController.add(tdb, "sequence.missed_cleavages", vp);

      editorElements.add(edp.append("enzyme", VALIDATION, vp, editorVisible));
    }

    /// modifications /////////////////////////////////////////

    {
      ValidationPanel vp = new ValidationPanel(2);

      Label label = new Label("Fixed Modifications:");
      label.setStyleName(PARAMS_LABEL);
      label.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
      editorElements.add(edp.append(MODIFICATIONS, LABEL1, label, editorVisible));

      // fixed mods label
      fixedMods =
          new ModificationsLabel(
              ModificationSelectionEditor.FIXED_PARAM_NAME,
              ModificationSelectionEditor.FIXED_PARAM_NAME);
      ModificationSelectionEditor fixedModsEditor =
          new ModificationSelectionEditor(
              ModificationSelectionEditor.FIXED_PARAM_NAME,
              ModificationSelectionEditor.FIXED_MOD_TYPE);
      fixedMods.setEditor(fixedModsEditor);
      validationController.add(fixedMods, ModificationSelectionEditor.FIXED_PARAM_NAME, vp);

      editorElements.add(edp.append(MODIFICATIONS, ENTRY1, fixedMods, editorVisible));

      // variable mods label
      varMods =
          new ModificationsLabel(
              ModificationSelectionEditor.VARIABLE_PARAM_NAME,
              ModificationSelectionEditor.VARIABLE_PARAM_NAME);
      ModificationSelectionEditor varModsEditor =
          new ModificationSelectionEditor(
              ModificationSelectionEditor.VARIABLE_PARAM_NAME,
              ModificationSelectionEditor.VARIABLE_MOD_TYPE);
      varMods.setEditor(varModsEditor);
      validationController.add(varMods, ModificationSelectionEditor.VARIABLE_PARAM_NAME, vp);

      Label label1 = new Label("Variable Modifications:");
      label1.setStyleName(PARAMS_LABEL);
      label1.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
      editorElements.add(edp.append(MODIFICATIONS, LABEL2, label1, editorVisible));

      editorElements.add(edp.append(MODIFICATIONS, ENTRY2, varMods, editorVisible));

      editorElements.add(edp.append(MODIFICATIONS, VALIDATION, vp, editorVisible));
    }

    /// tolerances /////////////////////////////////////////

    {
      Label label = new Label("Peptide Tolerance:");
      label.setStyleName(PARAMS_LABEL);
      label.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
      editorElements.add(edp.append(TOLERANCES, LABEL1, label, editorVisible));

      ValidationPanel vp = new ValidationPanel(2);

      ToleranceBox peptideTolerance;
      validationController.add(
          peptideTolerance = new ToleranceBox("tolerance.peptide"), "tolerance.peptide", vp);
      editorElements.add(edp.append(TOLERANCES, ENTRY1, peptideTolerance, editorVisible));

      Label label1 = new Label("Fragment Tolerance:");
      editorElements.add(edp.append(TOLERANCES, LABEL2, label1, editorVisible));
      label1.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
      label1.setStyleName(PARAMS_LABEL);

      ToleranceBox fragmentTolerance;
      validationController.add(
          fragmentTolerance = new ToleranceBox("tolerance.fragment"), "tolerance.fragment", vp);
      editorElements.add(edp.append(TOLERANCES, ENTRY2, fragmentTolerance, editorVisible));

      editorElements.add(edp.append(TOLERANCES, VALIDATION, vp, editorVisible));
    }

    /// instrument /////////////////////////////////////////
    ValidationPanel instrumentVp;
    {
      Label label = new Label("Instrument:");
      editorElements.add(edp.append(INSTRUMENT, LABEL1, label, editorVisible));
      label.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
      label.setStyleName(PARAMS_LABEL);
      instrumentVp = new ValidationPanel(2);
      InstrumentListBox lb;
      validationController.add(lb = new InstrumentListBox(INSTRUMENT), INSTRUMENT, instrumentVp);
      editorElements.add(edp.append(INSTRUMENT, ENTRY1, lb, editorVisible));
      editorElements.add(edp.append(INSTRUMENT, VALIDATION, instrumentVp, editorVisible));
    }

    /// spectrum extraction params /////////////////////////////////////////
    {
      Label label = new Label("Spectrum extraction:");
      editorElements.add(edp.append(INSTRUMENT, LABEL2, label, editorVisible));
      label.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
      label.setStyleName(PARAMS_LABEL);
      SpectrumExtractionEditor ed = new SpectrumExtractionEditor();
      validationController.add(ed, "extractMsnSettings", instrumentVp);
      editorElements.add(edp.append(INSTRUMENT, ENTRY2, ed, editorVisible));
    }

    /// scaffold params /////////////////////////////////////////
    {
      ExistingDOMPanel row = new ExistingDOMPanel("scaffoldRow");

      Label label = new Label("Scaffold:");
      editorElements.add(row.append(SCAFFOLD_SETTINGS, "scaffoldLabel", label, editorVisible));
      label.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
      label.setStyleName(PARAMS_LABEL);
      ValidationPanel vp = new ValidationPanel(2);
      ScaffoldSettingsEditor ed = new ScaffoldSettingsEditor();
      validationController.add(ed, SCAFFOLD_SETTINGS, vp);
      editorElements.add(row.append(SCAFFOLD_SETTINGS, "scaffoldEntry", ed, editorVisible));
      editorElements.add(row.append(SCAFFOLD_SETTINGS, "scaffoldValidation", vp, editorVisible));
    }

    validationController.setEnabled(false);
    selectionController.refresh();

    validationController.addChangeListener(
        new ChangeListener() {
          public void onChange(Widget widget) {
            for (PushButton button : buttons) {
              button.setEnabled(isValid());
            }
          }
        });
  }
Пример #11
0
 private void initMessage(final String message) {
   final RootPanel messagePanel = RootPanel.get("messagePlaceholder");
   messageDisplay.setVisible(false);
   messagePanel.add(messageDisplay);
   displayMessage(message);
 }
Пример #12
0
 private void initAdditionalSettings() {
   additionalSettingsPanel = new AdditionalSettingsPanel();
   final RootPanel panel = RootPanel.get("publicResults");
   panel.add(additionalSettingsPanel);
 }