package com.amazonaws.eclipse.core.ui; import java.util.ArrayList; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import com.amazonaws.eclipse.core.regions.Region; import com.amazonaws.eclipse.core.regions.RegionUtils; /** * @deprecated for {@link RegionComposite} */ @Deprecated public class RegionSelectionComposite extends Composite { private String serviceName; private Combo regionSelectionCombo; private List<SelectionListener> listeners = new ArrayList<SelectionListener>(); public RegionSelectionComposite(final Composite parent, final int style) { this(parent, style, null); } public void addSelectionListener(SelectionListener listener) { this.listeners.add(listener); } public RegionSelectionComposite(final Composite parent, final int style, final String serviceName) { super(parent, style); this.serviceName = serviceName; this.setLayout(new GridLayout(3, false)); createRegionSelectionCombo(); } protected void createRegionSelectionCombo() { Label selectAccount = new Label(this, SWT.None); selectAccount.setText("Select Region:"); //$NON-NLS-1$ regionSelectionCombo = new Combo(this, SWT.DROP_DOWN | SWT.READ_ONLY); List<Region> regions = serviceName == null ? RegionUtils.getRegions() : RegionUtils.getRegionsForService(serviceName); for (Region region : regions) { regionSelectionCombo.add(region.getName()); regionSelectionCombo.setData(region.getName(), region); } regionSelectionCombo.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { for ( SelectionListener listener : listeners ) { listener.widgetSelected(e); } } }); } public void setSelectRegion(String regionName) { regionSelectionCombo.setText(regionName); } public String getSelectedRegion() { return ((Region)regionSelectionCombo.getData(regionSelectionCombo.getText())).getId(); } public void setSelection(int index) { int itemCount = regionSelectionCombo.getItemCount(); if (index < 0 || index > itemCount - 1) { throw new IllegalArgumentException("The index provided is invalid!"); } regionSelectionCombo.select(index); } }