Package org.pentaho.reporting.engine.classic.core.modules.gui.print

Source Code of org.pentaho.reporting.engine.classic.core.modules.gui.print.PageSetupDialog$CancelAction

package org.pentaho.reporting.engine.classic.core.modules.gui.print;

import java.awt.BorderLayout;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.util.Locale;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

import org.pentaho.reporting.engine.classic.core.PageDefinition;
import org.pentaho.reporting.engine.classic.core.SimplePageDefinition;
import org.pentaho.reporting.engine.classic.core.modules.gui.base.SwingPreviewModule;
import org.pentaho.reporting.engine.classic.core.modules.gui.common.GuiContext;
import org.pentaho.reporting.engine.classic.core.util.PageFormatFactory;
import org.pentaho.reporting.libraries.base.util.ObjectUtilities;
import org.pentaho.reporting.libraries.base.util.ResourceBundleSupport;
import org.pentaho.reporting.libraries.xmlns.common.ParserUtil;

/**
* Todo: Document me!
* <p/>
* Date: 13.10.2009
* Time: 13:51:11
*
* @author Thomas Morgner.
*/
public class PageSetupDialog extends JDialog
{
  protected class ConfirmAction extends AbstractAction
  {
    /**
     * Defines an <code>Action</code> object with a default
     * description string and default icon.
     */
    public ConfirmAction()
    {
      putValue(Action.NAME, messages.getString("PageSetupDialog.Ok"));
    }

    /**
     * Invoked when an action occurs.
     */
    public void actionPerformed(final ActionEvent e)
    {
      confirmed = true;
      dispose();
    }
  }

  protected class CancelAction extends AbstractAction
  {
    /**
     * Defines an <code>Action</code> object with a default
     * description string and default icon.
     */
    public CancelAction()
    {
      putValue(Action.NAME, messages.getString("PageSetupDialog.Cancel"));
    }

    /**
     * Invoked when an action occurs.
     */
    public void actionPerformed(final ActionEvent e)
    {
      confirmed = false;
      dispose();
    }
  }

  private class PageSizeSelectionAction implements ActionListener
  {
    private PageSizeSelectionAction()
    {
    }

    /**
     * Invoked when an action occurs.
     */
    public void actionPerformed(final ActionEvent e)
    {
      final String selectedItem = (String) pageFormatBox.getSelectedItem();
      if (selectedItem == null)
      {
        return;
      }
      final Paper paper = PageFormatFactory.getInstance().createPaper(selectedItem);
      if (paper == null)
      {
        return;
      }
      pageWidthField.setText(String.valueOf(paper.getWidth()));
      pageHeightField.setText(String.valueOf(paper.getHeight()));
    }
  }

  private class RevalidateListener implements DocumentListener
  {
    private RevalidateListener()
    {
    }

    /**
     * Gives notification that there was an insert into the document.  The
     * range given by the DocumentEvent bounds the freshly inserted region.
     *
     * @param e the document event
     */
    public void insertUpdate(final DocumentEvent e)
    {
      changedUpdate(e);
    }

    /**
     * Gives notification that a portion of the document has been
     * removed.  The range is given in terms of what the view last
     * saw (that is, before updating sticky positions).
     *
     * @param e the document event
     */
    public void removeUpdate(final DocumentEvent e)
    {
      changedUpdate(e);
    }

    /**
     * Gives notification that an attribute or set of attributes changed.
     *
     * @param e the document event
     */
    public void changedUpdate(final DocumentEvent e)
    {
      revalidateInputs();
    }
  }

  private class PageSizeCheckBoxSelectionAction implements ChangeListener
  {
    private PageSizeCheckBoxSelectionAction()
    {
    }

    /**
     * Invoked when the target of the listener has changed its state.
     *
     * @param e a ChangeEvent object
     */
    public void stateChanged(final ChangeEvent e)
    {
      if (userDefinedPageSizeBox.isSelected())
      {
        pageFormatBox.setEnabled(false);
        pageWidthField.setEnabled(true);
        pageHeightField.setEnabled(true);
      }
      else
      {
        pageFormatBox.setEnabled(true);
        pageWidthField.setEnabled(false);
        pageHeightField.setEnabled(false);
      }
    }
  }

  private class OrientationChangeListener implements ActionListener
  {
    private OrientationChangeListener()
    {
    }

    /**
     * Invoked when an action occurs.
     */
    public void actionPerformed(final ActionEvent e)
    {
      revalidateInputs();
    }
  }

  private boolean confirmed;
  private ConfirmAction confirmAction;
  private JComboBox pageFormatBox;
  private JTextField pageHeightField;
  private JTextField pageWidthField;
  private JCheckBox portraitModeBox;
  private JCheckBox landscapeModeBox;
  private JTextField spanHorizontalField;
  private JTextField spanVerticalField;
  private JTextField marginTopField;
  private JTextField marginLeftField;
  private JTextField marginBottomField;
  private JTextField marginRightField;
  private GuiContext guiContext;
  private JCheckBox preDefinedPageSizeBox;
  private JCheckBox userDefinedPageSizeBox;
  private PageFormatPreviewPane previewPane;
  private ResourceBundleSupport messages;
  private static final String MESSAGES =
      "org.pentaho.reporting.engine.classic.core.modules.gui.print.messages.messages";

  public PageSetupDialog(final GuiContext guiContext)
  {
    init(guiContext);
  }

  public PageSetupDialog(final GuiContext guiContext, final Frame owner)
  {
    super(owner);
    init(guiContext);
  }

  public PageSetupDialog(final GuiContext guiContext, final Dialog owner)
  {
    super(owner);
    init(guiContext);
  }

  protected void init(final GuiContext guiContext)
  {
    messages = new ResourceBundleSupport
        (Locale.getDefault(), MESSAGES,
            ObjectUtilities.getClassLoader(PageSetupDialog.class));

    this.guiContext = guiContext;
    confirmAction = new ConfirmAction();
    final RevalidateListener revalidateListener = new RevalidateListener();

    previewPane = new PageFormatPreviewPane();

    pageFormatBox = new JComboBox(new DefaultComboBoxModel(PageFormatFactory.getInstance().getPageFormats()));
    pageHeightField = new JTextField();
    pageHeightField.setColumns(5);
    pageHeightField.getDocument().addDocumentListener(revalidateListener);
    pageWidthField = new JTextField();
    pageWidthField.setColumns(5);
    pageWidthField.getDocument().addDocumentListener(revalidateListener);

    landscapeModeBox = new JCheckBox();
    landscapeModeBox.addActionListener(new OrientationChangeListener());
    portraitModeBox = new JCheckBox();
    portraitModeBox.addActionListener(new OrientationChangeListener());

    preDefinedPageSizeBox = new JCheckBox();
    preDefinedPageSizeBox.addChangeListener(new PageSizeCheckBoxSelectionAction());
    userDefinedPageSizeBox = new JCheckBox();
    userDefinedPageSizeBox.addChangeListener(new PageSizeCheckBoxSelectionAction());

    final ButtonGroup pageSizeGroup = new ButtonGroup();
    pageSizeGroup.add(preDefinedPageSizeBox);
    pageSizeGroup.add(userDefinedPageSizeBox);

    spanHorizontalField = new JTextField();
    spanHorizontalField.setColumns(5);
    spanHorizontalField.getDocument().addDocumentListener(revalidateListener);
    spanVerticalField = new JTextField();
    spanVerticalField.setColumns(5);
    spanVerticalField.getDocument().addDocumentListener(revalidateListener);
    marginTopField = new JTextField();
    marginTopField.setColumns(5);
    marginTopField.getDocument().addDocumentListener(revalidateListener);
    marginLeftField = new JTextField();
    marginLeftField.setColumns(5);
    marginLeftField.getDocument().addDocumentListener(revalidateListener);
    marginBottomField = new JTextField();
    marginBottomField.setColumns(5);
    marginBottomField.getDocument().addDocumentListener(revalidateListener);
    marginRightField = new JTextField();
    marginRightField.setColumns(5);
    marginRightField.getDocument().addDocumentListener(revalidateListener);

    final ButtonGroup orientationGroup = new ButtonGroup();
    orientationGroup.add(portraitModeBox);
    orientationGroup.add(landscapeModeBox);

    pageFormatBox.addActionListener(new PageSizeSelectionAction());

    setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    final JPanel contentPane = new JPanel();
    contentPane.setLayout(new BorderLayout());
    contentPane.add(createContentPane(), BorderLayout.CENTER);
    contentPane.add(createButtonsPane(), BorderLayout.SOUTH);
    setContentPane(contentPane);
    pack();
  }

  protected void revalidateInputs()
  {
    try
    {
      if (ParserUtil.parseFloat(pageHeightField.getText(), -1) <= 0)
      {
        confirmAction.setEnabled(false);
        return;
      }
      if (ParserUtil.parseFloat(pageWidthField.getText(), -1) <= 0)
      {
        confirmAction.setEnabled(false);
        return;
      }
      if (ParserUtil.parseInt(spanHorizontalField.getText(), -1) <= 0)
      {
        confirmAction.setEnabled(false);
        return;
      }
      if (ParserUtil.parseInt(spanVerticalField.getText(), -1) <= 0)
      {
        confirmAction.setEnabled(false);
        return;
      }
      if (ParserUtil.parseFloat(marginTopField.getText(), -1) < 0)
      {
        confirmAction.setEnabled(false);
        return;
      }
      if (ParserUtil.parseFloat(marginLeftField.getText(), -1) < 0)
      {
        confirmAction.setEnabled(false);
        return;
      }
      if (ParserUtil.parseFloat(marginBottomField.getText(), -1) < 0)
      {
        confirmAction.setEnabled(false);
        return;
      }
      if (ParserUtil.parseFloat(marginRightField.getText(), -1) < 0)
      {
        confirmAction.setEnabled(false);
        return;
      }

      confirmAction.setEnabled(true);
    }
    finally
    {
      if (confirmAction.isEnabled())
      {
        previewPane.setPageDefinition(createPageDefinition());
      }
    }
  }

  private JPanel createOrientationPanel()
  {
    final Icon portraitIcon = guiContext.getIconTheme().getLargeIcon(getLocale(), "pagesetup.portrait");
    final JLabel portraitLabel = new JLabel(messages.getString("PageSetupDialog.Portrait"), portraitIcon, SwingConstants.LEFT);
    portraitLabel.setLabelFor(portraitModeBox);

    final Icon landscapeIcon = guiContext.getIconTheme().getLargeIcon(getLocale(), "pagesetup.landscape");
    final JLabel landscapeLabel = new JLabel(messages.getString("PageSetupDialog.Landscape"), landscapeIcon, SwingConstants.LEFT);
    landscapeLabel.setLabelFor(landscapeModeBox);

    final JPanel contentPane = new JPanel();
    contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.X_AXIS));
    contentPane.setBorder(BorderFactory.createCompoundBorder
        (BorderFactory.createTitledBorder(messages.getString("PageSetupDialog.Orientation")),
            BorderFactory.createEmptyBorder(5, 5, 5, 5)));
    contentPane.add(portraitModeBox);
    contentPane.add(portraitLabel);
    contentPane.add(Box.createHorizontalGlue());
    contentPane.add(landscapeModeBox);
    contentPane.add(landscapeLabel);
    contentPane.add(Box.createHorizontalGlue());
    return contentPane;
  }

  private JPanel createPageSpanningPanel()
  {
    final JPanel contentPane = new JPanel();
    contentPane.setLayout(new GridBagLayout());
    contentPane.setBorder(BorderFactory.createCompoundBorder
        (BorderFactory.createTitledBorder(messages.getString("PageSetupDialog.PageSpanning")), BorderFactory.createEmptyBorder(5, 5, 5, 5)));

    GridBagConstraints gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 0;
    gbc.gridy = 0;
    gbc.insets = new Insets(0, 0, 0, 10);
    contentPane.add(new JLabel(messages.getString("PageSetupDialog.SheetsAcross")), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 0;
    contentPane.add(new JLabel(messages.getString("PageSetupDialog.SheetsDown")), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 0;
    gbc.gridy = 1;
    gbc.weightx = 1;
    gbc.ipadx = 50;
    gbc.insets = new Insets(0, 0, 0, 10);
    contentPane.add(spanHorizontalField, gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 1;
    gbc.weightx = 1;
    gbc.ipadx = 50;
    contentPane.add(spanVerticalField, gbc);

    return contentPane;
  }

  private JPanel createPageSizePanel()
  {
    final JLabel preDefinedPageSizeLabel = new JLabel(messages.getString("PageSetupDialog.Standard"));
    preDefinedPageSizeLabel.setLabelFor(preDefinedPageSizeBox);

    final JLabel userDefinedPageSizeLabel = new JLabel(messages.getString("PageSetupDialog.Custom"));
    userDefinedPageSizeLabel.setLabelFor(userDefinedPageSizeBox);

    final JPanel contentPane = new JPanel();
    contentPane.setLayout(new GridBagLayout());
    contentPane.setBorder(BorderFactory.createCompoundBorder
        (BorderFactory.createTitledBorder(messages.getString("PageSetupDialog.PageSize")),
            BorderFactory.createEmptyBorder(5, 5, 5, 5)));

    GridBagConstraints gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 0;
    gbc.gridy = 0;
    contentPane.add(preDefinedPageSizeBox, gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 0;
    gbc.gridwidth = 4;
    gbc.weightx = 4;
    contentPane.add(preDefinedPageSizeLabel, gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 1;
    gbc.gridwidth = 4;
    contentPane.add(pageFormatBox, gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 0;
    gbc.gridy = 2;
    contentPane.add(userDefinedPageSizeBox, gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 2;
    gbc.gridwidth = 4;
    contentPane.add(userDefinedPageSizeLabel, gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 3;
    contentPane.add(new JLabel(messages.getString("PageSetupDialog.Width")), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 2;
    gbc.gridy = 3;
    contentPane.add(pageWidthField, gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 3;
    gbc.gridy = 3;
    gbc.insets = new Insets(0, 5, 0, 0);
    contentPane.add(new JLabel(messages.getString("PageSetupDialog.Height")), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 4;
    gbc.gridy = 3;
    contentPane.add(pageHeightField, gbc);

    return contentPane;
  }

  private JPanel createPreviewPanel()
  {
    final JPanel contentPane = new JPanel();
    contentPane.setLayout(new BorderLayout());
    contentPane.setBorder(BorderFactory.createCompoundBorder
        (BorderFactory.createTitledBorder(messages.getString("PageSetupDialog.Preview")), BorderFactory.createEmptyBorder(5, 5, 5, 5)));

    contentPane.add(previewPane, BorderLayout.CENTER);
    return contentPane;
  }

  private JPanel createMarginsPanel()
  {
    final JPanel contentPane = new JPanel();
    contentPane.setLayout(new GridBagLayout());
    contentPane.setBorder(BorderFactory.createCompoundBorder
        (BorderFactory.createTitledBorder(messages.getString("PageSetupDialog.Margins")), BorderFactory.createEmptyBorder(5, 5, 5, 5)));

    GridBagConstraints gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 0;
    contentPane.add(new JLabel(messages.getString("PageSetupDialog.Top")), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 1;
    contentPane.add(marginTopField, gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 0;
    gbc.gridy = 2;
    contentPane.add(new JLabel(messages.getString("PageSetupDialog.Left")), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 0;
    gbc.gridy = 3;
    contentPane.add(marginLeftField, gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 2;
    gbc.gridy = 2;
    contentPane.add(new JLabel(messages.getString("PageSetupDialog.Right")), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 2;
    gbc.gridy = 3;
    contentPane.add(marginRightField, gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 4;
    contentPane.add(new JLabel(messages.getString("PageSetupDialog.Bottom")), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 5;
    contentPane.add(marginBottomField, gbc);

    return contentPane;
  }

  private JPanel createContentPane()
  {
    final JPanel contentPane = new JPanel();
    contentPane.setLayout(new GridBagLayout());
    contentPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

    GridBagConstraints gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 0;
    gbc.gridy = 0;
    gbc.weighty = 1;
    gbc.fill = GridBagConstraints.BOTH;
    contentPane.add(createOrientationPanel(), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 0;
    gbc.gridy = 1;
    gbc.weighty = 1;
    gbc.fill = GridBagConstraints.BOTH;
    contentPane.add(createPageSizePanel(), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 0;
    gbc.gridy = 2;
    gbc.weighty = 1;
    gbc.fill = GridBagConstraints.BOTH;
    contentPane.add(createMarginsPanel(), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 0;
    gbc.weightx = 1;
    gbc.weighty = 1;
    gbc.fill = GridBagConstraints.BOTH;
    contentPane.add(createPageSpanningPanel(), gbc);

    gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.WEST;
    gbc.gridx = 1;
    gbc.gridy = 1;
    gbc.gridheight = 2;
    gbc.weightx = 1;
    gbc.weighty = 1;
    gbc.fill = GridBagConstraints.BOTH;
    contentPane.add(createPreviewPanel(), gbc);

    return contentPane;
  }

  protected JPanel createButtonsPane()
  {
    final JButton button = new JButton(confirmAction);
    button.setDefaultCapable(true);

    final JPanel buttonsPanel = new JPanel();
    buttonsPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 5, 5));
    buttonsPanel.add(button);
    buttonsPanel.add(new JButton(new CancelAction()));

    final JPanel buttonsCarrierPanel = new JPanel();
    buttonsCarrierPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
    buttonsCarrierPanel.add(buttonsPanel);
    return buttonsCarrierPanel;
  }

  public PageDefinition performSetup(final PageDefinition original)
  {
    if (original instanceof SimplePageDefinition)
    {
      final SimplePageDefinition simplePageDefinition = (SimplePageDefinition) original;
      spanHorizontalField.setText(String.valueOf(simplePageDefinition.getPageCountHorizontal()));
      spanVerticalField.setText(String.valueOf(simplePageDefinition.getPageCountVertical()));

      final PageFormat pageFormat = simplePageDefinition.getPageFormat();
      copyPageFormatToFields(pageFormat);
    }
    else if (original != null)
    {
      spanHorizontalField.setText(null);
      spanVerticalField.setText(null);

      if (original.getPageCount() > 0)
      {
        final PageFormat pageFormat = original.getPageFormat(0);
        copyPageFormatToFields(pageFormat);
      }
      else
      {
        preDefinedPageSizeBox.setSelected(true);
        pageWidthField.setText(null);
        pageHeightField.setText(null);
        pageFormatBox.setSelectedItem("A4");

        portraitModeBox.setSelected(true);

        marginLeftField.setText("18");
        marginTopField.setText("18");
        marginRightField.setText("18");
        marginBottomField.setText("18");
      }
    }
    else
    {
      spanHorizontalField.setText("1");
      spanVerticalField.setText("1");

      preDefinedPageSizeBox.setSelected(true);
      pageWidthField.setText(null);
      pageHeightField.setText(null);
      pageFormatBox.setSelectedItem("A4");

      portraitModeBox.setSelected(true);

      marginLeftField.setText("18");
      marginTopField.setText("18");
      marginRightField.setText("18");
      marginBottomField.setText("18");
    }

    confirmed = false;
    setModal(true);
    setVisible(true);

    if (confirmed == false)
    {
      return original;
    }

    return createPageDefinition();
  }

  private void copyPageFormatToFields(final PageFormat pageFormat)
  {
    final Paper paper = pageFormat.getPaper();
    final PageFormatFactory pageFormatFactory = PageFormatFactory.getInstance();
    final String formatName = pageFormatFactory.getPageFormatName(paper.getWidth(), paper.getHeight());
    pageFormatBox.setSelectedItem(formatName);
    pageWidthField.setText(String.valueOf(paper.getWidth()));
    pageHeightField.setText(String.valueOf(paper.getHeight()));
    userDefinedPageSizeBox.setSelected(formatName == null);
    preDefinedPageSizeBox.setSelected(formatName != null);

    final boolean portraitMode = pageFormat.getOrientation() == PageFormat.PORTRAIT;
    portraitModeBox.setSelected(portraitMode);
    landscapeModeBox.setSelected(portraitMode == false);

    if (portraitMode)
    {
      marginLeftField.setText(String.valueOf(pageFormatFactory.getLeftBorder(paper)));
      marginTopField.setText(String.valueOf(pageFormatFactory.getTopBorder(paper)));
      marginRightField.setText(String.valueOf(pageFormatFactory.getRightBorder(paper)));
      marginBottomField.setText(String.valueOf(pageFormatFactory.getBottomBorder(paper)));
    }
    else
    {
      marginTopField.setText(String.valueOf(pageFormatFactory.getLeftBorder(paper)));
      marginLeftField.setText(String.valueOf(pageFormatFactory.getTopBorder(paper)));
      marginBottomField.setText(String.valueOf(pageFormatFactory.getRightBorder(paper)));
      marginRightField.setText(String.valueOf(pageFormatFactory.getBottomBorder(paper)));
    }
  }

  private SimplePageDefinition createPageDefinition()
  {
    final float pageWidth = ParserUtil.parseFloat(pageWidthField.getText(), 0);
    final float pageHeight = ParserUtil.parseFloat(pageHeightField.getText(), 0);
    final int spanHorizontal = ParserUtil.parseInt(spanHorizontalField.getText(), 0);
    final int spanVertical = ParserUtil.parseInt(spanVerticalField.getText(), 0);
    final float marginTop = ParserUtil.parseFloat(marginTopField.getText(), 0);
    final float marginLeft = ParserUtil.parseFloat(marginLeftField.getText(), 0);
    final float marginBottom = ParserUtil.parseFloat(marginBottomField.getText(), 0);
    final float marginRight = ParserUtil.parseFloat(marginRightField.getText(), 0);

    final Paper p = PageFormatFactory.getInstance().createPaper(pageWidth, pageHeight);
    final PageFormat pf;
    if (portraitModeBox.isSelected())
    {
      PageFormatFactory.getInstance().setBorders(p, marginTop, marginLeft, marginBottom, marginRight);
      pf = PageFormatFactory.getInstance().createPageFormat(p, PageFormat.PORTRAIT);
    }
    else
    {
      //noinspection SuspiciousNameCombination
      PageFormatFactory.getInstance().setBorders(p, marginLeft, marginTop, marginRight, marginBottom);
      pf = PageFormatFactory.getInstance().createPageFormat(p, PageFormat.LANDSCAPE);
    }


    return new SimplePageDefinition(pf, spanHorizontal, spanVertical);
  }

  public boolean isConfirmed()
  {
    return confirmed;
  }
}
TOP

Related Classes of org.pentaho.reporting.engine.classic.core.modules.gui.print.PageSetupDialog$CancelAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.