use of com.microsoft.azure.docker.model.KnownDockerImages in project azure-tools-for-java by Microsoft.
the class AzureConfigureDockerContainerStep method initUI.
private void initUI() {
dockerContainerNameTextField.setText(dockerImageDescription.dockerContainerName);
dockerContainerNameTextField.setToolTipText(AzureDockerValidationUtils.getDockerContainerNameTip());
dockerContainerNameTextField.setInputVerifier(new InputVerifier() {
@Override
public boolean verify(JComponent input) {
if (AzureDockerValidationUtils.validateDockerContainerName(((JTextField) input).getText())) {
dockerContainerNameLabel.setVisible(false);
setDialogButtonsState(doValidate(false) == null);
return true;
} else {
dockerContainerNameLabel.setVisible(true);
setDialogButtonsState(false);
return false;
}
}
});
dockerContainerNameTextField.getDocument().addDocumentListener(resetDialogButtonsState(dockerContainerNameLabel));
dockerContainerNameLabel.setVisible(false);
selectContainerButtonGroup = new ButtonGroup();
selectContainerButtonGroup.add(predefinedDockerfileRadioButton);
selectContainerButtonGroup.add(customDockerfileRadioButton);
predefinedDockerfileRadioButton.setSelected(true);
dockerfileComboBox.setEnabled(true);
for (KnownDockerImages image : dockerManager.getDefaultDockerImages()) {
// Add predefined images that can run .WAR as default
if (!image.isCanRunJarFile()) {
dockerfileComboBox.addItem(image);
}
}
if (dockerImageDescription.predefinedDockerfile != null) {
dockerfileComboBox.setSelectedItem(KnownDockerImages.valueOf(dockerImageDescription.predefinedDockerfile));
} else {
dockerfileComboBox.setSelectedIndex(0);
}
dockerfileComboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dockerContainerPortSettings.setText(getDefaultPortMapping((KnownDockerImages) dockerfileComboBox.getSelectedItem()));
setDialogButtonsState(doValidate(false) == null);
}
});
customDockerfileBrowseButton.setEnabled(false);
customDockerfileBrowseButton.addActionListener(UIUtils.createFileChooserListener(customDockerfileBrowseButton, model.getProject(), FileChooserDescriptorFactory.createSingleLocalFileDescriptor()));
customDockerfileBrowseButton.getTextField().setToolTipText(AzureDockerValidationUtils.getDockerfilePathTip());
customDockerfileBrowseButton.getTextField().setInputVerifier(new InputVerifier() {
@Override
public boolean verify(JComponent input) {
if (customDockerfileRadioButton.isSelected() && !AzureDockerValidationUtils.validateDockerfilePath(customDockerfileBrowseButton.getText())) {
customDockerfileBrowseLabel.setVisible(true);
setDialogButtonsState(false);
return false;
} else {
customDockerfileBrowseLabel.setVisible(false);
setDialogButtonsState(doValidate(false) == null);
return true;
}
}
});
customDockerfileBrowseButton.getTextField().getDocument().addDocumentListener(resetDialogButtonsState(customDockerfileBrowseLabel));
customDockerfileBrowseLabel.setVisible(false);
customDockerfileBrowseButton.setText("");
predefinedDockerfileRadioButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dockerfileComboBox.setEnabled(true);
customDockerfileBrowseLabel.setVisible(false);
customDockerfileBrowseButton.setEnabled(false);
setDialogButtonsState(doValidate(false) == null);
}
});
customDockerfileRadioButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dockerfileComboBox.setEnabled(false);
customDockerfileBrowseButton.setEnabled(true);
if (AzureDockerValidationUtils.validateDockerfilePath(customDockerfileBrowseButton.getText())) {
customDockerfileBrowseLabel.setVisible(false);
setDialogButtonsState(doValidate(false) == null);
} else {
customDockerfileBrowseLabel.setVisible(true);
setDialogButtonsState(false);
}
}
});
dockerContainerPortSettings.setText(getDefaultPortMapping((KnownDockerImages) dockerfileComboBox.getSelectedItem()));
dockerContainerPortSettings.setToolTipText(AzureDockerValidationUtils.getDockerPortSettingsTip());
dockerContainerPortSettings.setInputVerifier(new InputVerifier() {
@Override
public boolean verify(JComponent input) {
if (AzureDockerValidationUtils.validateDockerPortSettings(dockerContainerPortSettings.getText()) != null) {
dockerContainerPortSettingsLabel.setVisible(false);
setDialogButtonsState(doValidate(false) == null);
return true;
} else {
dockerContainerPortSettingsLabel.setVisible(true);
setDialogButtonsState(false);
return false;
}
}
});
dockerContainerPortSettings.getDocument().addDocumentListener(resetDialogButtonsState(dockerContainerPortSettingsLabel));
dockerContainerPortSettingsLabel.setVisible(false);
}
use of com.microsoft.azure.docker.model.KnownDockerImages in project azure-tools-for-java by Microsoft.
the class AzureConfigureDockerContainerStep method setPredefinedDockerfileOptions.
public void setPredefinedDockerfileOptions(String artifactFileName) {
boolean isJarFile = artifactFileName.toLowerCase().matches(".*.jar");
dockerfileComboBox.removeAllItems();
for (KnownDockerImages image : dockerManager.getDefaultDockerImages()) {
if (image.isCanRunJarFile() == isJarFile) {
dockerfileComboBox.addItem(image);
}
}
if (dockerImageDescription.predefinedDockerfile != null) {
dockerfileComboBox.setSelectedItem(KnownDockerImages.valueOf(dockerImageDescription.predefinedDockerfile));
} else {
dockerfileComboBox.setSelectedIndex(0);
}
dockerContainerPortSettings.setText(getDefaultPortMapping((KnownDockerImages) dockerfileComboBox.getSelectedItem()));
}
use of com.microsoft.azure.docker.model.KnownDockerImages in project azure-tools-for-java by Microsoft.
the class AzureConfigureDockerContainerStep method setPredefinedDockerfileOptions.
public void setPredefinedDockerfileOptions(String artifactFileName) {
boolean isJarFile = artifactFileName.toLowerCase().matches(".*.jar");
dockerfileComboBox.removeAll();
int idx = 0;
boolean selected = false;
for (KnownDockerImages predefinedImage : dockerManager.getDefaultDockerImages()) {
if (predefinedImage.isCanRunJarFile() == isJarFile) {
dockerfileComboBox.add(predefinedImage.getName());
dockerfileComboBox.setData(predefinedImage.getName(), predefinedImage);
if (dockerImageDescription.predefinedDockerfile != null && dockerImageDescription.predefinedDockerfile.equals(predefinedImage)) {
dockerfileComboBox.select(idx);
selected = true;
}
idx++;
}
}
if (!selected) {
dockerfileComboBox.select(0);
}
dockerContainerPortSettings.setText(getDefaultPortMapping((KnownDockerImages) dockerfileComboBox.getData(dockerfileComboBox.getText())));
}
use of com.microsoft.azure.docker.model.KnownDockerImages in project azure-tools-for-java by Microsoft.
the class AzureConfigureDockerContainerStep method initUIMainContainer.
private void initUIMainContainer(Composite mainContainer) {
dockerContainerNameTextField.setText(dockerImageDescription.dockerContainerName);
dockerContainerNameTextField.setToolTipText(AzureDockerValidationUtils.getDockerContainerNameTip());
dockerContainerNameTextField.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent event) {
if (AzureDockerValidationUtils.validateDockerContainerName(((Text) event.getSource()).getText())) {
errDispatcher.removeMessage("dockerContainerNameTextField", dockerContainerNameTextField);
setErrorMessage(null);
setPageComplete(doValidate());
} else {
errDispatcher.addMessage("dockerContainerNameTextField", AzureDockerValidationUtils.getDockerContainerNameTip(), null, IMessageProvider.ERROR, dockerContainerNameTextField);
setErrorMessage("Invalid Docker container name");
setPageComplete(false);
}
}
});
predefinedDockerfileRadioButton.setSelection(true);
predefinedDockerfileRadioButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
dockerfileComboBox.setEnabled(true);
customDockerfileTextField.setEnabled(false);
customDockerfileBrowseButton.setEnabled(false);
errDispatcher.removeMessage("customDockerfileTextField", customDockerfileTextField);
setErrorMessage(null);
setPageComplete(doValidate());
}
});
int idx = 0;
boolean selected = false;
for (KnownDockerImages predefinedImage : dockerManager.getDefaultDockerImages()) {
// Add predefined images that can run .WAR as default
if (!predefinedImage.isCanRunJarFile()) {
dockerfileComboBox.add(predefinedImage.getName());
dockerfileComboBox.setData(predefinedImage.getName(), predefinedImage);
if (dockerImageDescription.predefinedDockerfile != null && dockerImageDescription.predefinedDockerfile.equals(predefinedImage)) {
dockerfileComboBox.select(idx);
selected = true;
}
idx++;
}
}
if (!selected) {
dockerfileComboBox.select(0);
}
dockerfileComboBox.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
dockerContainerPortSettings.setText(getDefaultPortMapping((KnownDockerImages) dockerfileComboBox.getData(dockerfileComboBox.getText())));
setPageComplete(doValidate());
}
});
customDockerfileRadioButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
dockerfileComboBox.setEnabled(false);
customDockerfileTextField.setEnabled(true);
customDockerfileBrowseButton.setEnabled(true);
setPageComplete(doValidate());
}
});
customDockerfileTextField.setToolTipText(AzureDockerValidationUtils.getDockerfilePathTip());
customDockerfileTextField.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent event) {
if (AzureDockerValidationUtils.validateDockerfilePath(((Text) event.getSource()).getText())) {
errDispatcher.removeMessage("customDockerfileTextField", customDockerfileTextField);
setErrorMessage(null);
setPageComplete(doValidate());
} else {
errDispatcher.addMessage("customDockerfileTextField", AzureDockerValidationUtils.getDockerfilePathTip(), null, IMessageProvider.ERROR, customDockerfileTextField);
setErrorMessage("Invalid Dockerfile location");
setPageComplete(false);
}
}
});
customDockerfileBrowseButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
FileDialog fileDialog = new FileDialog(customDockerfileBrowseButton.getShell(), SWT.OPEN);
fileDialog.setText("Select Custom Dockerfile");
fileDialog.setFilterPath(System.getProperty("user.home"));
fileDialog.setFilterExtensions(new String[] { "Dockerfile", "*.*" });
String path = fileDialog.open();
if (path == null) {
return;
}
customDockerfileTextField.setText(path);
setPageComplete(doValidate());
}
});
dockerContainerPortSettings.setText(getDefaultPortMapping((KnownDockerImages) dockerfileComboBox.getData(dockerfileComboBox.getText())));
dockerContainerPortSettings.setToolTipText(AzureDockerValidationUtils.getDockerPortSettingsTip());
dockerContainerPortSettings.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent event) {
if (AzureDockerValidationUtils.validateDockerPortSettings(((Text) event.getSource()).getText()) != null) {
errDispatcher.removeMessage("dockerContainerPortSettings", dockerContainerPortSettings);
setErrorMessage(null);
setPageComplete(doValidate());
} else {
errDispatcher.addMessage("dockerContainerPortSettings", AzureDockerValidationUtils.getDockerPortSettingsTip(), null, IMessageProvider.ERROR, dockerContainerPortSettings);
setErrorMessage("Invalid Docker container port settings");
setPageComplete(false);
}
}
});
}
use of com.microsoft.azure.docker.model.KnownDockerImages in project azure-tools-for-java by Microsoft.
the class AzureConfigureDockerContainerStep method doValidate.
public boolean doValidate() {
if (dockerContainerNameTextField.getText() == null || dockerContainerNameTextField.getText().equals("") || !AzureDockerValidationUtils.validateDockerContainerName(dockerContainerNameTextField.getText())) {
errDispatcher.addMessage("dockerContainerNameTextField", AzureDockerValidationUtils.getDockerContainerNameTip(), null, IMessageProvider.ERROR, dockerContainerNameTextField);
setErrorMessage("Invalid Docker container name");
return false;
} else {
errDispatcher.removeMessage("dockerContainerNameTextField", dockerContainerNameTextField);
setErrorMessage(null);
dockerImageDescription.dockerContainerName = dockerContainerNameTextField.getText();
}
if (predefinedDockerfileRadioButton.getSelection()) {
KnownDockerImages dockerfileImage = (KnownDockerImages) dockerfileComboBox.getData(dockerfileComboBox.getText());
if (dockerfileImage == null) {
errDispatcher.addMessage("dockerfileComboBox", "Missing predefined Dockerfile options", null, IMessageProvider.ERROR, dockerfileComboBox);
setErrorMessage("Invalid Dockerfile selection");
return false;
} else {
errDispatcher.removeMessage("dockerfileComboBox", dockerfileComboBox);
setErrorMessage(null);
dockerImageDescription.predefinedDockerfile = dockerfileImage.name();
if (dockerImageDescription.artifactPath != null) {
dockerImageDescription.dockerfileContent = dockerfileImage.getDockerfileContent().replace(KnownDockerImages.DOCKER_ARTIFACT_FILENAME, new File(dockerImageDescription.artifactPath).getName());
}
}
}
if (customDockerfileRadioButton.getSelection()) {
String dockerfileName = customDockerfileTextField.getText();
if (dockerfileName == null || dockerfileName.equals("") || Files.notExists(Paths.get(dockerfileName))) {
errDispatcher.addMessage("customDockerfileTextField", AzureDockerValidationUtils.getDockerfilePathTip(), null, IMessageProvider.ERROR, customDockerfileTextField);
setErrorMessage("Invalid Docker container name");
return false;
} else {
try {
dockerImageDescription.dockerfileContent = new String(Files.readAllBytes(Paths.get(dockerfileName)));
} catch (Exception e) {
errDispatcher.addMessage("customDockerfileTextField", AzureDockerValidationUtils.getDockerfilePathTip(), null, IMessageProvider.ERROR, customDockerfileTextField);
setErrorMessage("Error reading Dockerfile content");
return false;
}
errDispatcher.removeMessage("customDockerfileTextField", customDockerfileTextField);
setErrorMessage(null);
dockerImageDescription.predefinedDockerfile = null;
}
}
if (dockerContainerPortSettings.getText() == null || dockerContainerPortSettings.getText().equals("") || AzureDockerValidationUtils.validateDockerPortSettings(dockerContainerPortSettings.getText()) == null) {
errDispatcher.addMessage("dockerContainerPortSettings", AzureDockerValidationUtils.getDockerPortSettingsTip(), null, IMessageProvider.ERROR, dockerContainerPortSettings);
setErrorMessage("Invalid Docker container port settings");
return false;
} else {
errDispatcher.removeMessage("dockerContainerPortSettings", dockerContainerPortSettings);
setErrorMessage(null);
dockerImageDescription.dockerPortSettings = dockerContainerPortSettings.getText();
}
return true;
}
Aggregations