diff options
3 files changed, 38 insertions, 8 deletions
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 f0ba8123..dcdb938e 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 @@ -113,7 +113,6 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements }); btnLinkImage.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCreationPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCreationPage.java index 98a2bde3..617279a0 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCreationPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCreationPage.java @@ -121,7 +121,9 @@ public class LectureCreationPage extends LectureCreationPageLayout { state.end = end; } } - setDescription("Klicken Sie auf 'Weiter' für Berechtigungen oder 'Fertigstellen'"); + String nextText; + nextText = state.image == null ? ", um ein Image auszuwählen" : " für Berechtigung oder 'Fertigstellen'"; + setDescription("Klicken Sie auf 'Weiter' " + nextText); return true; } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureImageListPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureImageListPage.java index d325ea53..c90d80ae 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureImageListPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureImageListPage.java @@ -1,5 +1,8 @@ package org.openslx.dozmod.gui.wizard.page; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.ImageSummaryRead; import org.openslx.dozmod.gui.control.table.ImageTable; @@ -27,24 +30,50 @@ public class LectureImageListPage extends LectureImageListPageLayout { public LectureImageListPage(Wizard wizard, LectureWizardState state) { super(wizard); this.state = state; - setPageComplete(true); + setPageComplete(false); + imageTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() { + @Override + public void valueChanged(ListSelectionEvent e) { + reactToUserInput(); + } + }); } @Override protected void onPageEnter() { imageListViewer.refreshList(false, 1); } - + /** + * Called by event listeners. This will set guidance message or error + * message and call setPageComplete(bool) accordingly. + * The state will be updated if the fields are valid. + */ + private boolean reactToUserInput() { + boolean b = isPageValid(); + setPageComplete(b); + return b; + } @Override protected boolean wantNextOrFinish() { - return saveToState(); + return reactToUserInput(); } - private boolean saveToState() { - ImageSummaryRead selected = imageListViewer.getImageTable().getSelectedItem(); - if (selected != null) { + private boolean isPageValid() { + ImageSummaryRead selected = imageTable.getSelectedItem(); + if (selected == null) + return false; + String detailText = ""; + if (!selected.isValid) { + detailText = "Invalid"; + } else if (selected.getLatestVersionId() == null) { + detailText = "Keine Version"; + } else { + // valid, save to state state.image = selected; + state.imageVersionId = selected.getLatestVersionId(); + setDescription("Klicken Sie auf 'Weiter'"); return true; } + setErrorMessage("Ungültiges Image ausgewählt: " + detailText); return false; } |
