Exemple #1
0
  public KSBrowser(LookupMetadata fieldLookup, Controller controller) {
    this.fieldLookup = fieldLookup;

    if (config == null) {
      config = new WidgetConfigInfo();
    }

    browsePanels = new ArrayList<BrowsePanel>();
    cascadingLookups = new ArrayList<LookupMetadata>();
    cascadingChildParameters = new ArrayList<LookupParamMetadata>();
    cascadingLookups.add(this.fieldLookup);
    this.addChildLookups(this.fieldLookup);
    Collections.reverse(cascadingChildParameters);
    Collections.reverse(cascadingLookups);

    for (LookupMetadata lookupMetadata : cascadingLookups) {
      BrowsePanel browsePanel = new BrowsePanel(lookupMetadata);
      browsePanels.add(browsePanel);
      layout.add(browsePanel);
    }
    for (int i = 0; i < browsePanels.size() - 1; i++) {
      BrowsePanel currentBP = browsePanels.get(i);
      LookupParamMetadata nextParamMetadata = this.cascadingChildParameters.get(i);
      BrowsePanel nextBP = browsePanels.get(i + 1);
      currentBP.setOnSelectectedCallback(new ExecuteNextSearchCallback(nextBP, nextParamMetadata));
    }
    browsePanels
        .get(browsePanels.size() - 1)
        .setOnSelectectedCallback(new ViewCourseCallback(controller));

    this.initWidget(layout);
    browsePanels
        .get(0)
        .executeSearch(
            new Callback<Boolean>() {
              public void exec(Boolean result) {}
            });
  }