From 77f206be783ebf8983adcaad1e4d6333b2d6792d Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Fri, 17 Jul 2015 13:13:12 +0200 Subject: [client] improved ImageMetaDataPage setPageComplete logic --- .../dozmod/gui/wizard/page/ImageMetaDataPage.java | 67 ++++++++++++---------- 1 file changed, 38 insertions(+), 29 deletions(-) (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page') diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java index 395beed1..d4e47078 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java @@ -61,20 +61,7 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout { osCombo.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { - final int selectionIndex = osCombo.getSelectionIndex(); - if (selectionIndex != -1) { - uploadWizardState.selectedOs = (OperatingSystem) osCombo.getData(osCombo.getItem(selectionIndex)); - LOGGER.debug(uploadWizardState.selectedOs.toString()); - - // complete if the description was filled - if (!descriptionText.getText().isEmpty()) { - setMessage("Alles fertig, clicken Sie 'Finish'."); - setPageComplete(true); - } else { - setMessage("Fügen Sie eine Beschreibung hinzu."); - setPageComplete(false); - } - } + setPageCompleteOrMessage(); } }); @@ -85,21 +72,7 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout { @Override public void keyReleased(KeyEvent e) { - if (!descriptionText.getText().isEmpty()) { - uploadWizardState.description = descriptionText.getText(); - // complete if the OS was selected - if (osCombo.getSelectionIndex() != 1) { - setMessage("Alles fertig, clicken Sie 'Finish'."); - setPageComplete(true); - } else { - setMessage("Wählen Sie das Betriebssystem aus."); - setPageComplete(false); - } - } else { - // no description text - setMessage("Fügen Sie eine Beschreibung hinzu."); - setPageComplete(false); - } + setPageCompleteOrMessage(); } }); // -- checkboxes for permissions -- @@ -170,4 +143,40 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout { // Select no OS by default osCombo.clearSelection(); } + + /** + * Called by event listeners. This will set guidance message or error message + * and call setPageComplete(bool) accordingly. + */ + private void setPageCompleteOrMessage() { + + final int selectionIndex = osCombo.getSelectionIndex(); + final String descriptionInput = descriptionText.getText(); + + // first check if both the combo and the description field are empty + if (selectionIndex == -1) { + if (descriptionInput.isEmpty()) { + // both empty, set the regular message + setMessage("Bitte wählen Sie das Betriebssystem aus und fügen Sie eine Beschreibung hinzu."); + } else { + // OS empty, description input present + setMessage("Wählen Sie das Betriebssystem aus."); + } + } else { + // OS selected, save it to state + uploadWizardState.selectedOs = (OperatingSystem) osCombo.getData(osCombo.getItem(selectionIndex)); + LOGGER.debug(uploadWizardState.selectedOs.toString()); + if (descriptionInput.isEmpty()) { + // OS set, no description + setMessage("Fügen Sie eine Beschreibung hinzu."); + } else { + // all set + setMessage("Alles fertig, clicken Sie 'Finish'."); + } + } + // always save the description input, even if empty. + uploadWizardState.description = descriptionInput; + // final step: check if we can continue or not + setPageComplete(selectionIndex != -1 && !descriptionInput.isEmpty()); + } } -- cgit v1.2.3-55-g7522