protected Control createDialogArea()

in PluginsAndFeatures/azure-toolkit-for-eclipse/com.microsoft.azuretools.azureexplorer/src/com/microsoft/azuretools/azureexplorer/forms/createrediscache/CreateRedisCacheForm.java [170:396]


    protected Control createDialogArea(Composite parent) {
        resourceBundle = MessageHandler.getResourceBundle(MODULE_NAME);
        if (resourceBundle == null) {
            return null;
        }
        setTitle(MessageHandler.getResourceString(resourceBundle, DIALOG_TITLE));
        setMessage(MessageHandler.getResourceString(resourceBundle, DIALOG_MESSAGE));
        Composite area = (Composite) super.createDialogArea(parent);
        Composite container = new Composite(area, SWT.NONE);
        GridLayout glContainer = new GridLayout(4, false);
        glContainer.horizontalSpacing = LAYOUT_SPACING;
        glContainer.verticalSpacing = LAYOUT_SPACING;
        container.setLayout(glContainer);
        container.setLayoutData(new GridData(GridData.FILL_BOTH));

        Label lblDnsName = new Label(container, SWT.NONE);
        lblDnsName.setText(MessageHandler.getResourceString(resourceBundle, LABEL_DNS_NAME));

        txtDnsName = new Text(container, SWT.BORDER);
        txtDnsName.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

        decoratorDnsName = new ControlDecoration(txtDnsName, SWT.CENTER);
        decoratorDnsName.setDescriptionText(MessageHandler.getResourceString(resourceBundle, DECORACTOR_DNS));

        FieldDecoration fieldDecoration = FieldDecorationRegistry.getDefault()
                .getFieldDecoration(FieldDecorationRegistry.DEC_ERROR);
        if (fieldDecoration != null) {
            Image image = fieldDecoration.getImage();
            decoratorDnsName.setImage(image);
        }

        Label lblDnsSuffix = new Label(container, SWT.NONE);
        lblDnsSuffix.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
        lblDnsSuffix.setText(MessageHandler.getResourceString(resourceBundle, LABEL_DNS_SUFFIX));

        Label lblSubscription = new Label(container, SWT.NONE);
        lblSubscription.setText(MessageHandler.getResourceString(resourceBundle, LABEL_SUBSCRIPTION));

        cbSubs = new Combo(container, SWT.READ_ONLY);
        cbSubs.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));

        Label lblResourceGroup = new Label(container, SWT.NONE);
        lblResourceGroup.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 4, 1));
        lblResourceGroup.setText(MessageHandler.getResourceString(resourceBundle, LABEL_RESOURCE_GRP));

        rdoCreateNew = new Button(container, SWT.RADIO);
        rdoCreateNew.setText(MessageHandler.getResourceString(resourceBundle, RADIOBUTTON_NEW_GRP));
        rdoCreateNew.setSelection(true);

        txtNewResGrpName = new Text(container, SWT.BORDER);
        txtNewResGrpName.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
        txtNewResGrpName.setEnabled(true);

        decoratorResGrpName = new ControlDecoration(txtNewResGrpName, SWT.CENTER);
        decoratorResGrpName.setDescriptionText(MessageHandler.getResourceString(resourceBundle, RES_GRP_NAME_RULE));
        if (fieldDecoration != null) {
            Image image = fieldDecoration.getImage();
            decoratorResGrpName.setImage(image);
        }

        rdoUseExisting = new Button(container, SWT.RADIO);
        rdoUseExisting.setText(MessageHandler.getResourceString(resourceBundle, RADIOBUTTON_USE_EXIST_GRP));
        rdoUseExisting.setSelection(false);

        cbUseExisting = new Combo(container, SWT.READ_ONLY);
        cbUseExisting.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
        cbUseExisting.add(MessageHandler.getResourceString(resourceBundle, LOADING));
        cbUseExisting.select(0);
        cbUseExisting.setEnabled(false);

        Label lblLocation = new Label(container, SWT.NONE);
        lblLocation.setText(MessageHandler.getResourceString(resourceBundle, LABEL_LOCTION));

        cbLocations = new Combo(container, SWT.READ_ONLY);
        cbLocations.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
        cbLocations.add(MessageHandler.getResourceString(resourceBundle, LOADING));
        cbLocations.select(0);
        cbLocations.setEnabled(false);

        Label lblPricingTier = new Label(container, SWT.READ_ONLY);
        lblPricingTier.setText(MessageHandler.getResourceString(resourceBundle, LABEL_PRICING));

        cbPricetiers = new Combo(container, SWT.READ_ONLY);
        cbPricetiers.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));

        for (PricingTier price : PricingTier.values()) {
            cbPricetiers.add(price.toString());
        }
        cbPricetiers.select(0);
        selectedPriceTierValue = cbPricetiers.getText();

        Link lnkPrice = new Link(container, SWT.NONE);
        lnkPrice.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1));
        lnkPrice.setText(MessageHandler.getResourceString(resourceBundle, LINK_PRICE));
        lnkPrice.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent event) {
                try {
                    PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL(new URL(event.text));
                } catch (Exception ex) {
                    LOG.log(MessageHandler.getCommonStr(OPEN_BROWSER_ERROR), ex);
                }
            }
        });

        chkUnblockPort = new Button(container, SWT.CHECK);
        chkUnblockPort.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 4, 1));
        chkUnblockPort.setText(MessageHandler.getResourceString(resourceBundle, CHECKBOX_SSL));

        this.setHelpAvailable(false);

        txtDnsName.addModifyListener(new ModifyListener() {

            @Override
            public void modifyText(ModifyEvent arg0) {
                dnsNameValue = txtDnsName.getText();
                validateFields();
            }
        });

        for (Subscription sub : selectedSubscriptions) {
            cbSubs.add(String.format(SUBS_COMBO_ITEMS_FORMAT, sub.getName(), sub.getId()));
        }

        cbSubs.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                currentSub = selectedSubscriptions.get(cbSubs.getSelectionIndex());
                if (loaded) {
                    fillLocationsAndResourceGrps(currentSub);
                }
                validateFields();
            }
        });
        if (selectedSubscriptions.size() > 0) {
            cbSubs.select(0);
        }

        rdoCreateNew.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                txtNewResGrpName.setEnabled(true);
                cbUseExisting.setEnabled(false);
                newResGrp = true;
                selectedResGrpValue = txtNewResGrpName.getText();
                validateFields();
            }
        });

        rdoUseExisting.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                txtNewResGrpName.setEnabled(false);
                cbUseExisting.setEnabled(true);
                if (loaded) {
                    newResGrp = false;
                    selectedResGrpValue = sortedGroups.get(cbUseExisting.getSelectionIndex());
                    validateFields();
                }

            }
        });

        txtNewResGrpName.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent arg0) {
                selectedResGrpValue = txtNewResGrpName.getText();
                validateFields();
            }
        });

        cbUseExisting.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                selectedResGrpValue = cbUseExisting.getText();
                validateFields();
            }
        });

        cbLocations.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                selectedLocationValue = sortedLocations.get(cbLocations.getSelectionIndex()).getLabel();
                validateFields();
            }
        });

        cbPricetiers.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                selectedPriceTierValue = cbPricetiers.getText();
                validateFields();
            }
        });

        chkUnblockPort.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                Button btn = (Button) e.getSource();
                if (btn.getSelection()) {
                    noSSLPort = true;
                } else {
                    noSSLPort = false;
                }
            }
        });

        AzureTaskManager.getInstance().runInBackground(
                MessageHandler.getResourceString(resourceBundle, LOADING_LOCATION_AND_GRPS), false,
                () -> {
                    try {
                        DefaultLoader.getIdeHelper().invokeLater(new Runnable() {
                            @Override
                            public void run() {
                                fillLocationsAndResourceGrps(currentSub);
                                cbLocations.setEnabled(true);
                                loaded = true;
                                validateFields();
                            }
                        });
                    } catch (Exception ex) {
                        LOG.log(MessageHandler.getCommonStr(LOAD_LOCATION_AND_RESOURCE_ERROR), ex);
                    }
                });

        return area;
    }