summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-03 17:13:24 +0200
committerSimon Rettberg2015-08-03 17:13:24 +0200
commit0639a920e264a11176b90f9b1c0e116973d27de7 (patch)
tree5a9b4b63637c83199b5ce359c242df7befc7fa69 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
parent[client] Minor tweaks (diff)
downloadtutor-module-0639a920e264a11176b90f9b1c0e116973d27de7.tar.gz
tutor-module-0639a920e264a11176b90f9b1c0e116973d27de7.tar.xz
tutor-module-0639a920e264a11176b90f9b1c0e116973d27de7.zip
[client] Add ActivityPanel to MainWindow
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java51
1 files changed, 45 insertions, 6 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
index 369ce084..efef7a0c 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
@@ -10,6 +10,9 @@ import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -24,6 +27,8 @@ import org.apache.log4j.Logger;
import org.openslx.dozmod.App;
import org.openslx.dozmod.Config;
import org.openslx.dozmod.gui.Gui.GuiCallable;
+import org.openslx.dozmod.gui.activity.ActivityPanel;
+import org.openslx.dozmod.gui.activity.UploadPanel;
import org.openslx.dozmod.gui.helper.CompositePage;
import org.openslx.dozmod.gui.helper.DebugWindow;
import org.openslx.dozmod.gui.helper.MessageType;
@@ -33,6 +38,7 @@ import org.openslx.dozmod.gui.window.LectureListWindow;
import org.openslx.dozmod.gui.window.LoginWindow;
import org.openslx.dozmod.gui.window.MainMenuWindow;
import org.openslx.dozmod.gui.window.VirtualizerNoticeWindow;
+import org.openslx.dozmod.state.UploadWizardState;
import org.openslx.dozmod.thrift.Session;
import org.openslx.thrifthelper.ThriftManager;
import org.openslx.thrifthelper.ThriftManager.ErrorCallback;
@@ -42,7 +48,8 @@ public abstract class MainWindow {
private final static Logger LOGGER = Logger.getLogger(MainWindow.class);
private static final JFrame mainWindow;
- private static final JPanel mainContainer = new JPanel();
+ private static final JPanel mainContainer;
+ private static final JPanel activityPanel;
private static CompositePage currentPage;
@@ -50,6 +57,8 @@ public abstract class MainWindow {
private static final Map<Class<? extends CompositePage>, CompositePage> pages = new ConcurrentHashMap<>();
+ private static final List<ActivityPanel> activities = new ArrayList<>();
+
private static final String THRIFT_CONNECTION_ERROR = "Lost connection to the masterserver. Do you want to retry?";
/**
@@ -84,13 +93,24 @@ public abstract class MainWindow {
}
static {
- JFrame ret = Gui.syncExec(new GuiCallable<JFrame>() {
+ mainWindow = Gui.syncExec(new GuiCallable<JFrame>() {
@Override
public JFrame run() {
return new JFrame("bwLehrstuhl");
}
});
- mainWindow = ret;
+ mainContainer = Gui.syncExec(new GuiCallable<JPanel>() {
+ @Override
+ public JPanel run() {
+ return new JPanel();
+ }
+ });
+ activityPanel = Gui.syncExec(new GuiCallable<JPanel>() {
+ @Override
+ public JPanel run() {
+ return new JPanel();
+ }
+ });
}
/**
@@ -177,6 +197,8 @@ public abstract class MainWindow {
win.setPreferredSize(win.getMinimumSize());
mainWindow.getContentPane().add(win, BorderLayout.PAGE_START);
}
+ activityPanel.setLayout(new BoxLayout(activityPanel, BoxLayout.PAGE_AXIS));
+ mainWindow.getContentPane().add(activityPanel, BorderLayout.PAGE_END);
// center the window on the primary monitor
mainWindow.getContentPane().add(mainContainer, BorderLayout.CENTER);
@@ -197,6 +219,11 @@ public abstract class MainWindow {
// Show main menu by default
showPage(MainMenuWindow.class);
+
+ UploadWizardState test = new UploadWizardState();
+ test.name = "TEST TEST";
+ test.diskFile = new File("/bla/blu/blubb.blsdfg.vmdk");
+ addUpload(test);
}
/**
@@ -204,9 +231,16 @@ public abstract class MainWindow {
* confirmation.
*/
protected static void askApplicationQuit() {
- // TODO: Only ask if an upload or download is running,, wizard is open etc..
- if (Gui.showMessageBox(mainWindow, "Are you sure you want to quit?", MessageType.QUESTION_YESNO,
- null, null)) {
+ boolean open = false;
+ for (ActivityPanel activity : activities) {
+ if (activity.wantConfirmQuit()) {
+ open = true;
+ break;
+ }
+ }
+ if (!open
+ || Gui.showMessageBox(mainWindow, "Are you sure you want to quit?",
+ MessageType.QUESTION_YESNO, null, null)) {
Gui.exit(0);
}
isQuitQuestionOpen = false;
@@ -226,6 +260,11 @@ public abstract class MainWindow {
window.setVisible(false);
}
+ public static void addUpload(UploadWizardState state) {
+ activities.add(new UploadPanel(activityPanel, state));
+ activityPanel.validate();
+ }
+
private static void createMenu() {
// the File menu button
JMenuBar menuBar = new JMenuBar();