spdxedit.license.LicenseExtractControl.java Source code

Java tutorial

Introduction

Here is the source code for spdxedit.license.LicenseExtractControl.java

Source

/*
SPDX-License-Identifier: Apache-2.0
 */
package spdxedit.license;

import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.layout.Pane;
import org.apache.commons.lang3.StringUtils;

import java.io.IOException;
import java.util.Objects;

/**
 * Embeddable control to edit extracted licenses
 */
public class LicenseExtractControl {

    @FXML
    private TextField txtLicenseId;

    @FXML
    private TextField txtLicenseName;

    @FXML
    private TextArea txtLicenseText;

    private String initialNameValue;
    private String initialTextValue;
    private String initialLicenseId;

    /**
     * Creates a new LicenseExtractControl.
     *
     * @param initialNameValue
     * @param initialTextValue
     * @param initialLicenseId
     */
    public LicenseExtractControl(String initialNameValue, String initialTextValue, String initialLicenseId) {
        this.initialNameValue = initialNameValue;
        this.initialTextValue = initialTextValue;
        this.initialLicenseId = initialLicenseId;
    }

    @FXML
    void initialize() {
        assert txtLicenseName != null : "fx:id=\"txtLicenseName\" was not injected: check your FXML file 'extractLicenseDialog.fxml'.";
        assert txtLicenseText != null : "fx:id=\"txtLicenseText\" was not injected: check your FXML file 'extractLicenseDialog.fxml'.";
        assert initialLicenseId != null : "fx:id=\"initialLicenseId\" was not injected: check your FXML file 'extractLicenseDialog.fxml'.";
        txtLicenseName.setText(initialNameValue);
        txtLicenseText.setText(initialTextValue);
        txtLicenseId.setText(StringUtils.removeStart(initialLicenseId, "LicenseRef-"));

    }

    public String getLicenseId() {
        return "LicenseRef-" + Objects.requireNonNull(txtLicenseId).getText();
    }

    /**
     * Returns the selected license name. Throws {@link NullPointerException} if called before the control has been initialized.
     */
    public String getLicenseName() {
        return Objects.requireNonNull(txtLicenseName).getText();
    }

    /**
     * Returns the selected license text. Throws {@link NullPointerException} if called before the control has been initialized.
     */
    public String getLicenseText() {
        return Objects.requireNonNull(txtLicenseText).getText();
    }

    public Pane getUi() {
        try {
            FXMLLoader loader = new FXMLLoader(
                    LicenseExtractControl.class.getResource("/ExtractLicenseDialog.fxml"));
            loader.setController(this);
            Pane pane = loader.load();
            return pane;
        } catch (IOException ioe) {
            throw new RuntimeException("Unable to load scene for License editor dialog");
        }
    }
}