protected Control createDialogArea()

in PluginsAndFeatures/azure-toolkit-for-eclipse/com.microsoft.azuretools.azureexplorer/src/com/microsoft/azuretools/azureexplorer/forms/CreateArmStorageAccountForm.java [132:281]


    protected Control createDialogArea(Composite parent) {
        setTitle("Create New Storage Account");
        PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, "com.microsoft.azuretools.azureexplorer.storage_account_dialog");

        Composite container = new Composite(parent, SWT.FILL);
        GridLayout gridLayout = new GridLayout();
        gridLayout.numColumns = 2;
        gridLayout.marginBottom = 10;
        container.setLayout(gridLayout);
        GridData gridData = new GridData();
        gridData.grabExcessHorizontalSpace = true;
        gridData.horizontalAlignment = SWT.FILL;
//        gridData.widthHint = 250;
        container.setLayoutData(gridData);

        nameLabel = new Label(container, SWT.LEFT);
        nameLabel.setText("Name:");
        nameTextField = new Text(container, SWT.LEFT | SWT.BORDER);
//        gridData = new GridData(SWT.FILL, SWT.CENTER, true, true);
        nameTextField.setLayoutData(gridDataForText(180));
        subscriptionLabel = new Label(container, SWT.LEFT);
        subscriptionLabel.setText("Subscription:");
        subscriptionComboBox = new Combo(container, SWT.READ_ONLY);
        subscriptionComboBox.setLayoutData(gridDataForText(180));

        resourceGroupLabel = new Label(container, SWT.LEFT);
        resourceGroupLabel.setText("Resource group:");
        gridData = new GridData();
        gridData.verticalAlignment = SWT.TOP;
        resourceGroupLabel.setLayoutData(gridData);

        final Composite composite = new Composite(container, SWT.NONE);
        gridLayout = new GridLayout();
        gridLayout.numColumns = 2;
        gridData = new GridData();
        gridData.horizontalAlignment = SWT.FILL;
        gridData.verticalAlignment = GridData.BEGINNING;
        gridData.grabExcessHorizontalSpace = true;
//        gridData.widthHint = 250;
        composite.setLayout(gridLayout);
        composite.setLayoutData(gridData);

        createNewRadioButton = new Button(composite, SWT.RADIO);
        createNewRadioButton.setText("Create new");
        createNewRadioButton.setSelection(true);
        resourceGrpField = new Text(composite, SWT.LEFT | SWT.BORDER);
        gridData = new GridData(SWT.FILL, SWT.CENTER, true, true);
        resourceGrpField.setLayoutData(gridData);

        useExistingRadioButton = new Button(composite, SWT.RADIO);
        useExistingRadioButton.setText("Use existing");
        resourceGrpCombo = new Combo(composite, SWT.READ_ONLY);
        gridData = new GridData(SWT.FILL, SWT.CENTER, true, true);
        resourceGrpCombo.setLayoutData(gridData);
        resourceGroupViewer = new ComboViewer(resourceGrpCombo);
        resourceGroupViewer.setContentProvider(ArrayContentProvider.getInstance());

        SelectionListener updateListener = new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent arg0) {
                updateResourceGroup();
            }
        };
        createNewRadioButton.addSelectionListener(updateListener);
        useExistingRadioButton.addSelectionListener(updateListener);

        updateResourceGroup();

        regionLabel = new Label(container, SWT.LEFT);
        regionLabel.setText("Region:");
        regionComboBox = new Combo(container, SWT.READ_ONLY);
        regionComboBox.setLayoutData(gridDataForText(180));

        kindLabel = new Label(container, SWT.LEFT);
        kindLabel.setText("Account kind:");
        kindCombo = new Combo(container, SWT.READ_ONLY);
        kindCombo.setLayoutData(gridDataForText(180));

        performanceLabel = new Label(container, SWT.LEFT);
        performanceLabel.setText("Performance:");
        performanceCombo = new Combo(container, SWT.READ_ONLY);
        performanceCombo.setLayoutData(gridDataForText(180));

        replicationLabel = new Label(container, SWT.LEFT);
        replicationLabel.setText("Replication:");
        replicationComboBox = new Combo(container, SWT.READ_ONLY);
        replicationComboBox.setLayoutData(gridDataForText(180));

        if (subscription == null) { // not showing access tier with general purpose storage account which is used when creating vm
            accessTierLabel = new Label(container, SWT.LEFT);
            accessTierLabel.setText("Access Tier:");
            accessTierComboBox = new Combo(container, SWT.READ_ONLY);
            accessTierComboBox.setLayoutData(gridDataForText(180));
            for (AccessTier type : AccessTier.values()) {
                accessTierComboBox.add(type.toString());
                accessTierComboBox.setData(type.toString(), type);
            }
            accessTierComboBox.select(0);
        }

        pricingLabel = new Link(container, SWT.LEFT);
        pricingLabel.setText(PRICING_LINK);
        gridData = new GridData();
        gridData.horizontalSpan = 2;
        pricingLabel.setLayoutData(gridData);
        pricingLabel.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent event) {
                try {
                    PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL(new URL(event.text));
                } catch (Exception ex) {
                    /*
                     * only logging the error in log file
                     * not showing anything to end user
                     */
                    Activator.getDefault().log("Error occurred while opening link in default browser.", ex);
                }
            }
        });

        nameTextField.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent modifyEvent) {
                validateEmptyFields();
            }
        });

        regionComboBox.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                validateEmptyFields();
            }
        });

        resourceGrpField.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent modifyEvent) {
                validateEmptyFields();
            }
        });

        resourceGrpCombo.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                validateEmptyFields();
            }
        });

        fillFields();

        return super.createDialogArea(parent);
    }