All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jhotdraw8.application.action.file.CloseFileAction Maven / Gradle / Ivy

/*
 * @(#)CloseFileAction.java
 * Copyright © 2023 The authors and contributors of JHotDraw. MIT License.
 */
package org.jhotdraw8.application.action.file;

import org.jhotdraw8.annotation.NonNull;
import org.jhotdraw8.annotation.Nullable;
import org.jhotdraw8.application.ApplicationLabels;
import org.jhotdraw8.application.FileBasedActivity;
import org.jhotdraw8.application.action.AbstractSaveUnsavedChangesAction;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;

/**
 * Closes the active view after letting the user save unsaved changes.
 *
 * @author Werner Randelshofer
 */
public class CloseFileAction extends AbstractSaveUnsavedChangesAction {

    public static final String ID = "file.close";

    /**
     * Creates a new instance.
     *
     * @param activity the view
     */
    public CloseFileAction(@NonNull FileBasedActivity activity) {
        super(activity);
        ApplicationLabels.getResources().configureAction(this, ID);
    }


    @Override
    protected @NonNull CompletionStage doIt(@Nullable FileBasedActivity view) {
        if (view != null) {
            app.getActivities().remove(view);
        }
        return CompletableFuture.completedFuture(null);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy