📄 pdfsavedialog.java
字号:
* Retrieves the resources for this PreviewFrame. If the resources are not initialized,
* they get loaded on the first call to this method.
*
* @return this frames ResourceBundle.
*/
protected ResourceBundle getResources()
{
if (resources == null)
{
resources = ResourceBundle.getBundle(BASE_RESOURCE_CLASS);
}
return resources;
}
/**
* Returns a single instance of the security selection action.
*
* @return the action.
*/
private Action getActionSecuritySelection()
{
if (actionSecuritySelection == null)
{
actionSecuritySelection = new ActionSecuritySelection();
}
return actionSecuritySelection;
}
/**
* Returns a single instance of the file selection action.
*
* @return the action.
*/
private Action getActionSelectFile()
{
if (actionSelectFile == null)
{
actionSelectFile = new ActionSelectFile();
}
return actionSelectFile;
}
/**
* Returns a single instance of the dialog confirm action.
*
* @return the action.
*/
private Action getActionConfirm()
{
if (actionConfirm == null)
{
actionConfirm = new ActionConfirm();
}
return actionConfirm;
}
/**
* Returns a single instance of the dialog cancel action.
*
* @return the action.
*/
protected Action getActionCancel()
{
if (actionCancel == null)
{
actionCancel = new ActionCancel();
}
return actionCancel;
}
/**
* Initializes the Swing components of this dialog.
*/
private void initialize()
{
final JPanel contentPane = new JPanel();
contentPane.setLayout(new GridBagLayout());
contentPane.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
final JLabel lblFileName = new JLabel(getResources().getString("pdfsavedialog.filename"));
final JLabel lblAuthor = new JLabel(getResources().getString("pdfsavedialog.author"));
final JLabel lblTitel = new JLabel(getResources().getString("pdfsavedialog.title"));
final JLabel lblEncoding = new JLabel(getResources().getString("pdfsavedialog.encoding"));
final JButton btnSelect = new ActionButton(getActionSelectFile());
txAuthor = new JTextField();
txFilename = new JTextField();
txTitle = new JTextField();
encodingModel = EncodingComboBoxModel.createDefaultModel();
encodingModel.addEncodingUnchecked("Identity-H", "PDF-Unicode encoding");
encodingModel.addEncodingUnchecked("Identity-V", "PDF-Unicode encoding");
encodingModel.sort();
cbEncoding = new JComboBox(encodingModel);
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.WEST;
gbc.insets = new Insets(3, 1, 1, 1);
contentPane.add(lblFileName, gbc);
gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
gbc.gridx = 0;
gbc.gridy = 1;
gbc.insets = new Insets(1, 1, 1, 1);
contentPane.add(lblTitel, gbc);
gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
gbc.gridx = 0;
gbc.gridy = 2;
gbc.insets = new Insets(1, 1, 1, 1);
contentPane.add(lblAuthor, gbc);
gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
gbc.gridx = 0;
gbc.gridy = 3;
gbc.insets = new Insets(1, 1, 1, 1);
contentPane.add(lblEncoding, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 1;
gbc.gridy = 0;
gbc.ipadx = 120;
gbc.insets = new Insets(3, 1, 1, 1);
contentPane.add(txFilename, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 1;
gbc.gridy = 1;
gbc.ipadx = 120;
gbc.insets = new Insets(1, 1, 1, 1);
contentPane.add(txTitle, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 1;
gbc.gridy = 2;
gbc.ipadx = 120;
gbc.insets = new Insets(1, 1, 1, 1);
contentPane.add(txAuthor, gbc);
gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.NORTHWEST;
gbc.gridx = 2;
gbc.gridy = 0;
gbc.gridheight = 2;
contentPane.add(btnSelect, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 1;
gbc.gridy = 3;
gbc.ipadx = 120;
gbc.insets = new Insets(1, 1, 1, 1);
contentPane.add(cbEncoding, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.weighty = 1;
gbc.gridx = 0;
gbc.gridwidth = 3;
gbc.gridy = 4;
gbc.insets = new Insets(10, 0, 0, 0);
gbc.anchor = GridBagConstraints.NORTH;
contentPane.add(createSecurityPanel(), gbc);
btnCancel = new ActionButton(getActionCancel());
btnConfirm = new ActionButton(getActionConfirm());
final JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout());
buttonPanel.add(btnConfirm);
buttonPanel.add(btnCancel);
btnConfirm.setDefaultCapable(true);
buttonPanel.registerKeyboardAction(getActionConfirm(),
KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0),
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.NONE;
gbc.weightx = 1;
gbc.gridx = 0;
gbc.gridwidth = 3;
gbc.gridy = 6;
gbc.insets = new Insets(10, 0, 0, 0);
contentPane.add(buttonPanel, gbc);
setContentPane(contentPane);
}
/**
* Creates a panel for the security settings.
*
* @return The panel.
*/
private JPanel createSecurityPanel()
{
final JPanel securityPanel = new JPanel();
securityPanel.setLayout(new GridBagLayout());
securityPanel.setBorder(
BorderFactory.createTitledBorder(getResources().getString("pdfsavedialog.security")));
rbSecurityNone = new JRadioButton(getResources().getString("pdfsavedialog.securityNone"));
rbSecurity40Bit = new JRadioButton(getResources().getString("pdfsavedialog.security40bit"));
rbSecurity128Bit = new JRadioButton(getResources().getString("pdfsavedialog.security128bit"));
rbSecurityNone.addActionListener(getActionSecuritySelection());
rbSecurity40Bit.addActionListener(getActionSecuritySelection());
rbSecurity128Bit.addActionListener(getActionSecuritySelection());
txUserPassword = new JPasswordField();
txConfUserPassword = new JPasswordField();
txOwnerPassword = new JPasswordField();
txConfOwnerPassword = new JPasswordField();
final JLabel lblUserPass = new JLabel(getResources().getString("pdfsavedialog.userpassword"));
final JLabel lblUserPassConfirm =
new JLabel(getResources().getString("pdfsavedialog.userpasswordconfirm"));
final JLabel lblOwnerPass =
new JLabel(getResources().getString("pdfsavedialog.ownerpassword"));
final JLabel lblOwnerPassConfirm =
new JLabel(getResources().getString("pdfsavedialog.ownerpasswordconfirm"));
final JLabel lbAllowPrinting =
new JLabel(getResources().getString("pdfsavedialog.allowPrinting"));
cxAllowCopy = new JCheckBox(getResources().getString("pdfsavedialog.allowCopy"));
cbAllowPrinting = new JComboBox(getPrintingComboBoxModel());
cxAllowScreenReaders =
new JCheckBox(getResources().getString("pdfsavedialog.allowScreenreader"));
cxAllowAssembly = new JCheckBox(getResources().getString("pdfsavedialog.allowAssembly"));
cxAllowModifyContents =
new JCheckBox(getResources().getString("pdfsavedialog.allowModifyContents"));
cxAllowModifyAnnotations =
new JCheckBox(getResources().getString("pdfsavedialog.allowModifyAnnotations"));
cxAllowFillIn = new JCheckBox(getResources().getString("pdfsavedialog.allowFillIn"));
final JPanel pnlSecurityConfig = new JPanel();
pnlSecurityConfig.setLayout(new GridLayout());
pnlSecurityConfig.add(rbSecurityNone);
pnlSecurityConfig.add(rbSecurity40Bit);
pnlSecurityConfig.add(rbSecurity128Bit);
final ButtonGroup btGrpSecurity = new ButtonGroup();
btGrpSecurity.add(rbSecurity128Bit);
btGrpSecurity.add(rbSecurity40Bit);
btGrpSecurity.add(rbSecurityNone);
rbSecurity128Bit.setSelected(true);
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 0;
gbc.gridwidth = 4;
gbc.gridy = 0;
gbc.insets = new Insets(5, 5, 5, 5);
securityPanel.add(pnlSecurityConfig, gbc);
gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
gbc.gridx = 0;
gbc.gridy = 1;
gbc.insets = new Insets(5, 5, 5, 5);
securityPanel.add(lblUserPass, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 1;
gbc.gridy = 1;
gbc.ipadx = 120;
gbc.insets = new Insets(5, 5, 5, 5);
securityPanel.add(txUserPassword, gbc);
gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
gbc.gridx = 0;
gbc.gridy = 2;
gbc.insets = new Insets(5, 5, 5, 5);
securityPanel.add(lblOwnerPass, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 1;
gbc.gridy = 2;
gbc.ipadx = 120;
gbc.insets = new Insets(5, 5, 5, 5);
securityPanel.add(txOwnerPassword, gbc);
gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
gbc.gridx = 2;
gbc.gridy = 1;
gbc.insets = new Insets(5, 5, 5, 5);
securityPanel.add(lblUserPassConfirm, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 3;
gbc.gridy = 1;
gbc.ipadx = 120;
gbc.insets = new Insets(5, 5, 5, 5);
securityPanel.add(txConfUserPassword, gbc);
gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
gbc.gridx = 2;
gbc.gridy = 2;
gbc.insets = new Insets(5, 5, 5, 5);
securityPanel.add(lblOwnerPassConfirm, gbc);
gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 1;
gbc.gridx = 3;
gbc.gridy = 2;
gbc.ipadx = 120;
gbc.insets = new Insets(5, 5, 5, 5);
securityPanel.add(txConfOwnerPassword, gbc);
gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridwidth = 2;
gbc.gridy = 3;
gbc.anchor = GridBagConstraints.WEST;
securityPanel.add(cxAllowCopy, gbc);
gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridwidth = 2;
gbc.gridy = 4;
gbc.anchor = GridBagConstraints.WEST;
securityPanel.add(cxAllowScreenReaders, gbc);
gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridwidth = 2;
gbc.gridy = 5;
gbc.anchor = GridBagConstraints.WEST;
securityPanel.add(cxAllowFillIn, gbc);
gbc = new GridBagConstraints();
gbc.gridx = 2;
gbc.gridwidth = 2;
gbc.gridy = 3;
gbc.anchor = GridBagConstraints.WEST;
securityPanel.add(cxAllowAssembly, gbc);
gbc = new GridBagConstraints();
gbc.gridx = 2;
gbc.gridwidth = 2;
gbc.gridy = 4;
gbc.anchor = GridBagConstraints.WEST;
securityPanel.add(cxAllowModifyContents, gbc);
gbc = new GridBagConstraints();
gbc.gridx = 2;
gbc.gridwidth = 2;
gbc.gridy = 5;
gbc.anchor = GridBagConstraints.WEST;
securityPanel.add(cxAllowModifyAnnotations, gbc);
gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridwidth = 1;
gbc.gridy = 6;
gbc.anchor = GridBagConstraints.WEST;
securityPanel.add(lbAllowPrinting, gbc);
gbc = new GridBagConstraints();
gbc.gridx = 1;
gbc.gridwidth = 3;
gbc.gridy = 6;
gbc.anchor = GridBagConstraints.WEST;
securityPanel.add(cbAllowPrinting, gbc);
return securityPanel;
}
/**
* returns the defined user password for the pdf file. The user password limits read-only access
* to the pdf in the PDF-Viewer. The reader/user has to enter the password when opening the file.
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -