r4fterman/pdf.forms

View on GitHub
src/main/java/org/pdf/forms/gui/commands/FontManagementCommand.java

Summary

Maintainability
A
0 mins
Test Coverage
F
41%
package org.pdf.forms.gui.commands;

import java.util.List;

import javax.swing.*;

import org.pdf.forms.fonts.FontHandler;
import org.pdf.forms.fonts.FontManagementDialog;
import org.pdf.forms.gui.IMainFrame;
import org.pdf.forms.model.properties.Font;
import org.pdf.forms.readers.properties.DesignerPropertiesFile;

class FontManagementCommand implements Command {

    private final IMainFrame mainFrame;
    private final FontHandler fontHandler;
    private final DesignerPropertiesFile designerPropertiesFile;

    FontManagementCommand(
            final IMainFrame mainFrame,
            final FontHandler fontHandler,
            final DesignerPropertiesFile designerPropertiesFile) {
        this.mainFrame = mainFrame;
        this.fontHandler = fontHandler;
        this.designerPropertiesFile = designerPropertiesFile;
    }

    @Override
    public void execute() {
        final FontManagementDialog dialog = new FontManagementDialog(
                (JFrame) mainFrame,
                fontHandler.getFonts(),
                designerPropertiesFile.getCustomFonts());

        dialog.pack();
        dialog.setLocationRelativeTo((JFrame) mainFrame);
        dialog.setVisible(true);
        if (dialog.isCanceled()) {
            return;
        }

        final List<Font> customFonts = dialog.getCustomFonts();
        designerPropertiesFile.setCustomFonts(customFonts);
        fontHandler.updateFonts();
        mainFrame.updateAvailableFonts();
    }

}