summaryrefslogtreecommitdiffstats
path: root/scripting/examples/java/Newsgroup/StatusWindow.java
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /scripting/examples/java/Newsgroup/StatusWindow.java
parentInitial commit. (diff)
downloadlibreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.tar.xz
libreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.zip
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--scripting/examples/java/Newsgroup/StatusWindow.java147
1 files changed, 147 insertions, 0 deletions
diff --git a/scripting/examples/java/Newsgroup/StatusWindow.java b/scripting/examples/java/Newsgroup/StatusWindow.java
new file mode 100644
index 000000000..7b37c8fa7
--- /dev/null
+++ b/scripting/examples/java/Newsgroup/StatusWindow.java
@@ -0,0 +1,147 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you 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 .
+ */
+
+package org.libreoffice.example.java_scripts;
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.border.*;
+
+public class StatusWindow extends JFrame {
+
+ private JProgressBar progressBar = null;
+ private JTextField statusLabel = null;
+ private JButton cancelButton = null;
+ private JFrame statusWindow = null;
+ private PostNewsgroup mainWindow = null;
+
+ private final int MAXPROGRESS = 13;
+ private final int MINPROGRESS = 0;
+
+
+ public StatusWindow(PostNewsgroup mw, String title, int parentX, int parentY) {
+ this.setTitle(title);
+ this.setLocation(parentX + 100, parentY + 100);
+ statusWindow = this;
+ mainWindow = mw;
+
+ mainWindow.enableButtons(false);
+
+ statusWindow.addWindowListener(new WindowAdapter() {
+ public void windowClosing(WindowEvent event) {
+ mainWindow.enableButtons(true);
+ }
+ });
+
+ progressBar = new JProgressBar();
+ progressBar.setStringPainted(true);
+ progressBar.setMaximum(MAXPROGRESS);
+ progressBar.setMinimum(MINPROGRESS);
+ progressBar.setSize(30, 400);
+
+ JLabel progLabel = new JLabel("Progress:");
+
+ JPanel progressPanel = new JPanel();
+ progressPanel.setLayout(new BorderLayout(10, 0));
+ progressPanel.add(progLabel, "West");
+ progressPanel.add(progressBar, "East");
+
+ statusLabel = new JTextField();
+ statusLabel.setColumns(25);
+ statusLabel.setEditable(false);
+ statusLabel.setBorder(null);
+ JPanel statusPanel = new JPanel();
+ statusPanel.setLayout(new BorderLayout());
+ statusPanel.add(statusLabel, "West");
+
+ cancelButton = new JButton("Cancel");
+ cancelButton.setSize(30, 100);
+ cancelButton.setEnabled(false);
+ cancelButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent event) {
+ // cancelling actions
+ mainWindow.enableButtons(true);
+ statusWindow.dispose();
+ }
+ });
+
+ JPanel buttonPanel = new JPanel();
+ buttonPanel.setLayout(new BorderLayout(0, 5));
+ buttonPanel.add(cancelButton, "East");
+ buttonPanel.add(new JSeparator(SwingConstants.HORIZONTAL), "North");
+
+ Container container = getContentPane();
+ container.setLayout(new GridBagLayout());
+ GridBagConstraints constraints = new GridBagConstraints();
+ constraints.fill = GridBagConstraints.BOTH;
+
+ constraints.gridx = 0;
+ constraints.gridy = 0;
+ constraints.gridwidth = 1;
+ constraints.gridheight = 1;
+ constraints.insets = new Insets(15, 15, 10, 15);
+ container.add(progressPanel, constraints);
+
+ constraints.gridx = 0;
+ constraints.gridy = 1;
+ constraints.gridwidth = 1;
+ constraints.gridheight = 1;
+ constraints.insets = new Insets(10, 15, 10, 15);
+ container.add(statusPanel, constraints);
+
+ constraints.gridx = 0;
+ constraints.gridy = 2;
+ constraints.gridwidth = 1;
+ constraints.gridheight = 1;
+ constraints.insets = new Insets(10, 15, 5, 15);
+ container.add(buttonPanel, constraints);
+
+ this.pack();
+ this.setResizable(false);
+
+ }
+
+
+ public void setStatus(int progress, String status) {
+ progressBar.setValue(progress);
+ statusLabel.setText(status);
+ statusLabel.setToolTipText(status);
+
+ if (progress == MAXPROGRESS) {
+ cancelButton.setEnabled(true);
+ cancelButton.setText("Close");
+ }
+
+ update(getGraphics());
+ mainWindow.update(mainWindow.getGraphics());
+ }
+
+
+ public void enableCancelButton(boolean enable) {
+ if (enable) {
+ cancelButton.setEnabled(true);
+ cancelButton.setText("Finish");
+ } else {
+ cancelButton.setEnabled(false);
+ cancelButton.setText("Cancel");
+ }
+
+ }
+
+}