public void createApplicationInsightsResourceTable()

in PluginsAndFeatures/AddLibrary/AppInsights/com.microsoft.applicationinsights.ui/src/main/java/com/microsoft/applicationinsights/preference/ApplicationInsightsPreferencePage.java [131:317]


    public void createApplicationInsightsResourceTable(Composite parent) {
        table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION);
        table.setHeaderVisible(true);
        table.setLinesVisible(true);

        GridData gridData = new GridData();
        gridData.heightHint = 360;
        gridData.verticalIndent = 15;
        gridData.horizontalAlignment = SWT.FILL;
        gridData.grabExcessHorizontalSpace = false;
        table.setLayoutData(gridData);

        TableColumn strNameCol = new TableColumn(table, SWT.FILL);
        strNameCol.setText(Messages.resrcName);
        strNameCol.setWidth(150);

        TableColumn strUrlDisCol = new TableColumn(table, SWT.FILL);
        strUrlDisCol.setText(Messages.instrKey);
        strUrlDisCol.setWidth(190);

        tableViewer = new TableViewer(table);
        tableViewer.setContentProvider(new IStructuredContentProvider() {

            @Override
            public void inputChanged(Viewer viewer, Object obj, Object obj1) {
            }

            @Override
            public void dispose() {
            }

            @Override
            public Object[] getElements(Object obj) {
                return getTableContent();
            }
        });

        tableViewer.setLabelProvider(new ITableLabelProvider() {

            @Override
            public void removeListener(ILabelProviderListener ilabelproviderlistener) {
            }

            @Override
            public boolean isLabelProperty(Object element, String s) {
                return false;
            }

            @Override
            public void dispose() {
            }

            @Override
            public void addListener(ILabelProviderListener ilabelproviderlistener) {
            }

            @Override
            public String getColumnText(Object element, int i) {
                ApplicationInsightsPageTableElement rowElement = (ApplicationInsightsPageTableElement) element;
                String result = "";
                switch (i) {
                    case 0:
                        result = rowElement.getResourceName();
                        break;

                    case 1:
                        result = rowElement.getInstrumentationKey();
                        break;

                    default:
                        break;
                }
                return result;
            }

            @Override
            public Image getColumnImage(Object element, int i) {
                return null;
            }
        });

        tableViewer.setInput(getTableContent());

        GridLayout gridLayout = new GridLayout();
        gridLayout.numColumns = 1;
        gridData = new GridData();
        gridData.horizontalAlignment = SWT.END;
        gridData.verticalAlignment = GridData.BEGINNING;
        gridData.verticalIndent = 15;
        Composite containerButtons = new Composite(parent, SWT.NONE);
        containerButtons.setLayout(gridLayout);
        containerButtons.setLayoutData(gridData);

        btnNew = new Button(containerButtons, SWT.PUSH);
        btnNew.setText(Messages.btnNewLbl);
        gridData = new GridData();
        gridData.widthHint = 70;
        btnNew.setLayoutData(gridData);
        btnNew.addSelectionListener(new SelectionListener() {

            @Override
            public void widgetSelected(SelectionEvent arg0) {
                newButtonListener();
            }

            @Override
            public void widgetDefaultSelected(SelectionEvent arg0) {
            }
        });

        btnAdd = new Button(containerButtons, SWT.PUSH);
        btnAdd.setText(Messages.btnAddLbl);
        gridData = new GridData();
        gridData.widthHint = 70;
        btnAdd.setLayoutData(gridData);
        btnAdd.addSelectionListener(new SelectionListener() {

            @Override
            public void widgetSelected(SelectionEvent arg0) {
                addButtonListener();
            }

            @Override
            public void widgetDefaultSelected(SelectionEvent arg0) {
            }
        });

        btnDetails = new Button(containerButtons, SWT.PUSH);
        btnDetails.setEnabled(false);
        btnDetails.setText(Messages.btnDtlsLbl);
        gridData = new GridData();
        gridData.widthHint = 70;
        btnDetails.setLayoutData(gridData);
        btnDetails.addSelectionListener(new SelectionListener() {

            @Override
            public void widgetSelected(SelectionEvent arg0) {
                detailsButtonListener();
            }

            @Override
            public void widgetDefaultSelected(SelectionEvent arg0) {
            }
        });

        btnRemove = new Button(containerButtons, SWT.PUSH);
        btnRemove.setEnabled(false);
        btnRemove.setText(Messages.btnRmvLbl);
        gridData = new GridData();
        gridData.widthHint = 70;
        btnRemove.setLayoutData(gridData);
        btnRemove.addSelectionListener(new SelectionListener() {

            @Override
            public void widgetSelected(SelectionEvent arg0) {
                removeButtonListener();
            }

            @Override
            public void widgetDefaultSelected(SelectionEvent arg0) {
            }
        });

        table.addSelectionListener(new SelectionListener() {

            @Override
            public void widgetSelected(SelectionEvent event) {
                selIndex = tableViewer.getTable().getSelectionIndex();
                btnDetails.setEnabled(true);
                btnRemove.setEnabled(true);
            }

            @Override
            public void widgetDefaultSelected(SelectionEvent event) {
            }
        });

        tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
            @Override
            public void selectionChanged(SelectionChangedEvent selectionchangedevent) {
                if (selectionchangedevent.getSelection().isEmpty()) {
                    btnDetails.setEnabled(false);
                    btnRemove.setEnabled(false);
                }
            }
        });
    }