diff options
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.java | 51 |
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(); |