/* | |
* Copyright 2012 gitblit.com. | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
package com.gitblit.authority; | |
import java.awt.BorderLayout; | |
import java.awt.Frame; | |
import java.awt.GridLayout; | |
import java.awt.Insets; | |
import java.awt.event.ActionEvent; | |
import java.awt.event.ActionListener; | |
import java.util.Date; | |
import javax.swing.JButton; | |
import javax.swing.JCheckBox; | |
import javax.swing.JDialog; | |
import javax.swing.JLabel; | |
import javax.swing.JOptionPane; | |
import javax.swing.JPanel; | |
import javax.swing.JTextField; | |
import com.gitblit.client.HeaderPanel; | |
import com.gitblit.client.Translation; | |
import com.gitblit.utils.StringUtils; | |
import com.toedter.calendar.JDateChooser; | |
public class NewSSLCertificateDialog extends JDialog { | |
private static final long serialVersionUID = 1L; | |
JDateChooser expirationDate; | |
JTextField hostname; | |
JCheckBox serveCertificate; | |
boolean isCanceled = true; | |
public NewSSLCertificateDialog(Frame owner, Date defaultExpiration) { | |
super(owner); | |
setTitle(Translation.get("gb.newSSLCertificate")); | |
JPanel content = new JPanel(new BorderLayout(Utils.MARGIN, Utils.MARGIN)) { | |
private static final long serialVersionUID = 1L; | |
@Override | |
public Insets getInsets() { | |
return Utils.INSETS; | |
} | |
}; | |
expirationDate = new JDateChooser(defaultExpiration); | |
hostname = new JTextField(20); | |
serveCertificate = new JCheckBox(Translation.get("gb.serveCertificate"), true); | |
JPanel panel = new JPanel(new GridLayout(0, 2, Utils.MARGIN, Utils.MARGIN)); | |
panel.add(new JLabel(Translation.get("gb.hostname"))); | |
panel.add(hostname); | |
panel.add(new JLabel(Translation.get("gb.expires"))); | |
panel.add(expirationDate); | |
panel.add(new JLabel("")); | |
panel.add(serveCertificate); | |
JButton ok = new JButton(Translation.get("gb.ok")); | |
ok.addActionListener(new ActionListener() { | |
@Override | |
public void actionPerformed(ActionEvent e) { | |
if (validateInputs()) { | |
isCanceled = false; | |
setVisible(false); | |
} | |
} | |
}); | |
JButton cancel = new JButton(Translation.get("gb.cancel")); | |
cancel.addActionListener(new ActionListener() { | |
@Override | |
public void actionPerformed(ActionEvent e) { | |
isCanceled = true; | |
setVisible(false); | |
} | |
}); | |
JPanel controls = new JPanel(); | |
controls.add(ok); | |
controls.add(cancel); | |
content.add(panel, BorderLayout.CENTER); | |
content.add(controls, BorderLayout.SOUTH); | |
getContentPane().add(new HeaderPanel(Translation.get("gb.newSSLCertificate"), "rosette_16x16.png"), BorderLayout.NORTH); | |
getContentPane().add(content, BorderLayout.CENTER); | |
pack(); | |
setLocationRelativeTo(owner); | |
} | |
private boolean validateInputs() { | |
if (getExpiration().getTime() < System.currentTimeMillis()) { | |
// expires before now | |
JOptionPane.showMessageDialog(this, Translation.get("gb.invalidExpirationDate"), | |
Translation.get("gb.error"), JOptionPane.ERROR_MESSAGE); | |
return false; | |
} | |
if (StringUtils.isEmpty(getHostname())) { | |
// must have hostname | |
JOptionPane.showMessageDialog(this, Translation.get("gb.hostnameRequired"), | |
Translation.get("gb.error"), JOptionPane.ERROR_MESSAGE); | |
return false; | |
} | |
return true; | |
} | |
public String getHostname() { | |
return hostname.getText(); | |
} | |
public Date getExpiration() { | |
return expirationDate.getDate(); | |
} | |
public boolean isServeCertificate() { | |
return serveCertificate.isSelected(); | |
} | |
public boolean isCanceled() { | |
return isCanceled; | |
} | |
} |