From 51ac35d46acc9056b515391609d866ac8afbd231 Mon Sep 17 00:00:00 2001 From: Andreas Abraham Date: Thu, 6 Sep 2018 16:41:40 +0200 Subject: new dialog window implementation added --- .../java/at/gv/egiz/upater/NewVersionDialog.java | 133 +++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 utils/src/main/java/at/gv/egiz/upater/NewVersionDialog.java diff --git a/utils/src/main/java/at/gv/egiz/upater/NewVersionDialog.java b/utils/src/main/java/at/gv/egiz/upater/NewVersionDialog.java new file mode 100644 index 00000000..2199b7f7 --- /dev/null +++ b/utils/src/main/java/at/gv/egiz/upater/NewVersionDialog.java @@ -0,0 +1,133 @@ +package at.gv.egiz.upater; + +import java.awt.BorderLayout; +import java.awt.Desktop; +import java.awt.FlowLayout; +import java.awt.Image; + +import javax.imageio.ImageIO; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JPanel; +import javax.swing.border.EmptyBorder; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.swing.JLabel; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; + + + +public class NewVersionDialog extends JDialog { + + /** + * + */ + private static final long serialVersionUID = -7913669490723497774L; + private final JPanel contentPanel = new JPanel(); + private final Logger log = LoggerFactory.getLogger(NewVersionDialog.class); + + /** + * Launch the application. + */ + public static void main(String[] args) { + try { + NewVersionDialog dialog = new NewVersionDialog("dummy"); + dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); + dialog.setVisible(true); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Create the dialog. + * @throws IOException + */ + public NewVersionDialog(String version) throws IOException { + setTitle("New Version Available!"); + setResizable(false); + setBounds(100, 100, 330, 180); + getContentPane().setLayout(new BorderLayout()); + contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); + getContentPane().add(contentPanel, BorderLayout.CENTER); + contentPanel.setLayout(null); + BufferedImage myPicture = ImageIO.read(new File("C:/Users/aabraham/Downloads/information-icon.png")); + ImageIcon icon = new ImageIcon(myPicture.getScaledInstance(50, 50, Image.SCALE_SMOOTH)); + { + JLabel lblNewVersion = new JLabel("New Mocca Version " + version + " available."); + lblNewVersion.setBounds(76, 36, 228, 27); + contentPanel.add(lblNewVersion); + } + { + JLabel lblNewLabel = new JLabel("Open download page now?"); + lblNewLabel.setBounds(76, 55, 186, 27); + contentPanel.add(lblNewLabel); + } + { + + JLabel lblIcon = new JLabel(icon); + lblIcon.setBounds(10, 36, 56, 49); + contentPanel.add(lblIcon); + } + { + JPanel buttonPane = new JPanel(); + buttonPane.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + + + } + }); + buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); + getContentPane().add(buttonPane, BorderLayout.SOUTH); + { + JButton okButton = new JButton("OK"); + okButton.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + openLink(); + } + }); + okButton.setActionCommand("OK"); + buttonPane.add(okButton); + getRootPane().setDefaultButton(okButton); + } + { + JButton cancelButton = new JButton("Cancel"); + cancelButton.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + close(); + } + }); + cancelButton.setActionCommand("Cancel"); + buttonPane.add(cancelButton); + } + } + } + + private void close() { + this.dispose(); + } + + + private void openLink() { + if (Desktop.isDesktopSupported()) { + try { + Desktop.getDesktop().browse(new URI(Constants.WEBSTART_URL+Constants.MOCCA_STR)); + } catch (IOException | URISyntaxException e) { + log.error(e.getMessage()); + } + } + } + +} -- cgit v1.2.3