diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java | 48 |
1 files changed, 35 insertions, 13 deletions
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 c3fce45c..306359e8 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 @@ -26,27 +26,36 @@ import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.TextChangeListener; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.layout.ImageMetaDataPageLayout; +import org.openslx.dozmod.model.ContainerDefinition; import org.openslx.dozmod.state.UploadWizardState; import org.openslx.dozmod.thrift.Session; import org.openslx.dozmod.thrift.cache.MetaDataCache; import org.openslx.thrifthelper.Comparators; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; +import org.openslx.util.vm.DockerMetaDataDummy; import org.openslx.util.vm.QemuMetaData; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.util.Collections; +import java.util.List; + /** * Page for setting the details of an image. */ -@SuppressWarnings("serial") -public class ImageMetaDataPage extends ImageMetaDataPageLayout { +@SuppressWarnings("serial") public class ImageMetaDataPage extends ImageMetaDataPageLayout { private final static Logger LOGGER = Logger.getLogger(ImageMetaDataPage.class); private UploadWizardState state; + private final ContainerDefinition containerDefinition; - public ImageMetaDataPage(Wizard wizard, UploadWizardState uploadWizardState) { + public ImageMetaDataPage(Wizard wizard, UploadWizardState uploadWizardState, + ContainerDefinition containerDefinition) { super(wizard); this.state = uploadWizardState; + this.containerDefinition = containerDefinition; setPageComplete(false); // HACK set fixed uploadWizardState to test functions uploadWizardState.shareMode = ShareMode.LOCAL; @@ -55,14 +64,12 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout { QuickTimer.scheduleOnce(new Task() { List<OperatingSystem> osList = null; - @Override - public void fire() { + @Override public void fire() { osList = MetaDataCache.getOperatingSystems(); // now send the organizations back to the LoginWindow // through populateIdpCombo() Gui.asyncExec(new Runnable() { - @Override - public void run() { + @Override public void run() { fillOsCombo(osList); } }); @@ -70,8 +77,7 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout { }); cboOperatingSystem.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { + @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { reactToUserInput(); } @@ -79,8 +85,7 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout { }); txtDescription.getDocument().addDocumentListener(new TextChangeListener() { - @Override - public void changed() { + @Override public void changed() { reactToUserInput(); } }); @@ -193,11 +198,15 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout { reactToUserInput(); } - @Override - protected boolean wantNextOrFinish() { + @Override protected boolean wantNextOrFinish() { state.selectedOs = (OperatingSystem) cboOperatingSystem.getSelectedItem(); state.isTemplate = chkIsTemplate.isSelected(); state.isRestricted = chkLicenseRestricted.isSelected(); + + if (state.meta instanceof DockerMetaDataDummy) { + containerDefinition.getContainerMeta().setBindMountConfig(bindMountConfigurator.getData()); + state.meta = containerDefinition.createVmMeta(); + } return state.selectedOs != null && state.description != null; } @@ -228,6 +237,19 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout { startCommandPane.setVisible(true); } + if (state.meta instanceof DockerMetaDataDummy) { + bindMountConfigurator.setVisible(true); + + // TODO we need Information about a OS in Container? Currently use "Other (32 Bit)" as default + lblOperatingSystem.setVisible(false); + cboOperatingSystem.setVisible(false); + + // TODO do we need to check license restrictions in container? + chkLicenseRestricted.setVisible(false); + // TODO currently no Container Template! + chkIsTemplate.setVisible(false); + } + // evaluate description field state.description = txtDescription.getText(); if (state.description == null || state.description.isEmpty()) { |