From efbdc799332fd3746afebaa469cc713dbc40501c Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Wed, 2 Sep 2015 16:26:42 +0200 Subject: [client] "Cancel"/"Save" button order for DetailsWindows added confirmation if the user wants to close a detail window were he changed some of the field --- .../src/main/java/org/openslx/dozmod/gui/MainWindow.java | 4 ++-- .../java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java | 7 ++++++- .../java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java | 9 +++++++-- .../org/openslx/dozmod/gui/window/layout/ConfigWindowLayout.java | 3 --- .../dozmod/gui/window/layout/ImageDetailsWindowLayout.java | 4 ++-- .../dozmod/gui/window/layout/LectureDetailsWindowLayout.java | 4 ++-- .../openslx/dozmod/gui/window/layout/MainMenuWindowLayout.java | 9 +++++---- 7 files changed, 24 insertions(+), 16 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 677e3590..a64207b9 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java @@ -106,7 +106,7 @@ public abstract class MainWindow { mainWindow = Gui.syncExec(new GuiCallable() { @Override public JFrame run() { - return new JFrame("bwLehrstuhl"); + return new JFrame("bwSuite"); } }); mainContainer = Gui.syncExec(new GuiCallable() { @@ -224,7 +224,7 @@ public abstract class MainWindow { DisclaimerWindow.open(mainWindow); } - mainWindow.setTitle("bwLehrstuhl - " + Session.getFirstName() + " " + Session.getLastName() + " [" + mainWindow.setTitle("bwSuite - " + Session.getFirstName() + " " + Session.getLastName() + " [" + Session.getSatelliteAddress() + "]"); // Show main menu by default diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java index d63ca41f..951e6532 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java @@ -110,6 +110,10 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe btnClose.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { + if (reactToChange() && + !Gui.showMessageBox(me, + "Änderungen werden verworfen, wollen Sie wirklich abbrechen?", MessageType.QUESTION_YESNO, LOGGER, null)) + return; dispose(); } }); @@ -473,7 +477,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe * Checks whether the user changed any fields of the image details and * enables the save button if so. */ - private void reactToChange() { + private boolean reactToChange() { OperatingSystem newOs = cboOperatingSystem.getItemAt(cboOperatingSystem.getSelectedIndex()); ShareMode newShareMode = cboShareMode.getItemAt(cboShareMode.getSelectedIndex()); boolean changed = false; @@ -494,6 +498,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe } // TODO TAGS btnSaveChanges.setEnabled(changed); + return changed; } /** * Opens a new ImageDetailsWindow showing the details of the image with ID = diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java index 9a9dfc20..551f1cd3 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java @@ -146,7 +146,11 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements btnClose.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - dispose(); + if (reactToChange() && + !Gui.showMessageBox(me, + "Änderungen werden verworfen, wollen Sie wirklich abbrechen?", MessageType.QUESTION_YESNO, LOGGER, null)) + return; + dispose(); } }); btnDownloadImage.addActionListener(new ActionListener() { @@ -496,7 +500,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements * Checks whether the user changed any fields of the image details and * enables the save button if so. */ - private void reactToChange() { + private boolean reactToChange() { boolean changed = false; // version checkbox changed? ImageVersionDetails currentVersion = cboVersions.getItemAt(cboVersions.getSelectedIndex()); @@ -525,6 +529,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements } btnSaveChanges.setEnabled(changed); + return changed; } /** diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ConfigWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ConfigWindowLayout.java index daf39555..5afa7bc9 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ConfigWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ConfigWindowLayout.java @@ -5,7 +5,6 @@ import java.awt.Dimension; import java.awt.Frame; import javax.swing.BorderFactory; -import javax.swing.BoundedRangeModel; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.ButtonGroup; @@ -16,8 +15,6 @@ import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JSlider; -import javax.swing.JSpinner; -import javax.swing.event.ChangeListener; import org.openslx.dozmod.gui.helper.GridManager; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java index f5b41f9d..9d7e61ea 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java @@ -192,12 +192,12 @@ public abstract class ImageDetailsWindowLayout extends JDialog { buttonPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.LINE_AXIS)); btnSaveChanges = new JButton("Speichern"); - btnClose = new JButton("Schließen"); + btnClose = new JButton("Abbrechen"); btnUpdateImage = new JButton("Neue Imageversion hochladen"); buttonPanel.add(btnUpdateImage); buttonPanel.add(Box.createGlue()); - buttonPanel.add(btnSaveChanges); buttonPanel.add(btnClose); + buttonPanel.add(btnSaveChanges); // --- Version table on the right (EAST) side JPanel versionTablePanel = new JPanel(); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java index fb56eda0..de8867d1 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java @@ -239,11 +239,11 @@ public abstract class LectureDetailsWindowLayout extends JDialog { // button panel on the bottom JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS)); + btnClose = new JButton("Abbrechen"); btnSaveChanges = new JButton("Speichern"); - btnClose = new JButton("Schließen"); buttonPanel.add(Box.createGlue()); - buttonPanel.add(btnSaveChanges); buttonPanel.add(btnClose); + buttonPanel.add(btnSaveChanges); add(buttonPanel, BorderLayout.SOUTH); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/MainMenuWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/MainMenuWindowLayout.java index a11f263b..34429bf5 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/MainMenuWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/MainMenuWindowLayout.java @@ -40,21 +40,22 @@ public abstract class MainMenuWindowLayout extends CompositePage { protected String vmInfo = "Übersicht Virtuelle Maschinen
" + "Zur Übersicht über die verfügbaren Virtuellen Maschinen wechseln. Hier können Sie:

" + "1) Veranstaltungen auf Basis einer Virtuellen Maschine erstellen
" - + "2) Neue Virtuelle Maschinen hochladen
" + "3) Virtuelle Maschinen herunterladen
" + + "2) Neue Virtuelle Maschinen hochladen
" + + "3) Virtuelle Maschinen herunterladen
" + "4) Virtuelle Maschinen bearbeiten und löschen"; // text for the info for the lecture selection protected String lecturesInfo = "Übersicht Veranstaltungen
" - + "Zur Übersicht über die verfügbaren Veranstaltugen wechseln. Hier können Sie:

" + + "Zur Übersicht über die verfügbaren Veranstaltungen wechseln. Hier können Sie:

" + "1) Veranstaltungen bearbeiten oder löschen
" - + "2) Zu Veranstaltungen gehörende Virtuelle Maschinen herunterladen"; + + "2) Zu Veranstaltungen gehörende Virtuelle Maschinen herunterladen
 "; // buttons protected JButton vmButton; protected JButton lecturesButton; public MainMenuWindowLayout() { - this.setBorder(BorderFactory.createTitledBorder("bwLehrstuhl Hauptmenü")); + this.setBorder(BorderFactory.createTitledBorder("bwSuite-Hauptmenü")); GridManager grid = new GridManager(this, 2); vmButton = new JButton(ResourceLoader.getIcon("/img/virtualization.png", "VM-Übersicht")); -- cgit v1.2.3-55-g7522