getShell().setText(Messages.ManageCloudDialog_TEXT_MANAGE_CLOUD_URL);
Composite composite = new Composite(parent, SWT.NONE);
GridDataFactory.fillDefaults().grab(true, true).applyTo(composite);
GridLayoutFactory.fillDefaults().margins(10, 10).numColumns(2).equalWidth(false).applyTo(composite);
final TableViewer viewer = createTableViewer(composite, new String[] { Messages.ManageCloudDialog_TEXT_SERVER_TYPE, Messages.ManageCloudDialog_TEXT_URL }, new int[] { 35,
55 });
viewer.setContentProvider(new IStructuredContentProvider() {
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
public void dispose() {
}
public Object[] getElements(Object inputElement) {
Collections.sort(cloudUrls, new Comparator<CloudServerURL>() {
public int compare(CloudServerURL o1, CloudServerURL o2) {
return o1.getName().compareTo(o2.getName());
}
});
return cloudUrls.toArray();
}
});
cloudUrls = CloudUiUtil.getAllUrls(serverTypeId);
viewer.setInput(cloudUrls.toArray());
viewer.setLabelProvider(new ITableLabelProvider() {
public void removeListener(ILabelProviderListener listener) {
}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void dispose() {
}
public void addListener(ILabelProviderListener listener) {
}
public String getColumnText(Object element, int columnIndex) {
if (element instanceof CloudServerURL) {
CloudServerURL cloudUrl = (CloudServerURL) element;
if (columnIndex == 0) {
return cloudUrl.getName();
}
else if (columnIndex == 1) {
return cloudUrl.getUrl();
}
}
return null;
}
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
});
Composite buttonComposite = new Composite(composite, SWT.NONE);
GridDataFactory.fillDefaults().grab(false, true).applyTo(buttonComposite);
GridLayoutFactory.fillDefaults().margins(0, 0).applyTo(buttonComposite);
final Button addButton = new Button(buttonComposite, SWT.PUSH);
GridDataFactory.fillDefaults().applyTo(addButton);
addButton.setText(Messages.COMMONTXT_ADD);
addButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
CloudServerURL cloudURL = promptForCloudURL(serverTypeId, e.display.getActiveShell(), cloudUrls, null,
null);
if (cloudURL != null) {
addURL(cloudURL);
viewer.refresh(true);
}
}
});
final Button editButton = new Button(buttonComposite, SWT.PUSH);
GridDataFactory.fillDefaults().applyTo(editButton);
editButton.setText(Messages.COMMONTXT_EDIT);
editButton.setEnabled(false);
editButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
ISelection selection = viewer.getSelection();
if (selection instanceof IStructuredSelection) {
IStructuredSelection sSelection = (IStructuredSelection) selection;
Object element = sSelection.getFirstElement();
if (element instanceof CloudServerURL) {
CloudServerURL cloudUrl = (CloudServerURL) element;
if (cloudUrl.getUserDefined()) {
cloudUrls.remove(cloudUrl);
CloudServerURL newUrl = promptForCloudURL(serverTypeId, e.display.getActiveShell(),
cloudUrls, cloudUrl.getUrl(), cloudUrl.getName());
if (newUrl != null) {
if (cloudUrl.getUrl().equals(newUrl.getUrl()) || canUpdateUrl(cloudUrl, newUrl)) {
addURL(newUrl);
}
else {
addURL(cloudUrl);
}
}
else {
addURL(cloudUrl);
}
}
else {
CloudServerURL url = CloudUiUtil.getWildcardUrl(cloudUrl, cloudUrls, getShell());
if (url != null) {
addURL(url);
}
}
viewer.refresh(true);
}
}
}
});
final Button removeButton = new Button(buttonComposite, SWT.PUSH);
GridDataFactory.fillDefaults().applyTo(removeButton);
removeButton.setText(Messages.COMMONTXT_REMOVE);
removeButton.setEnabled(false);
removeButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
ISelection selection = viewer.getSelection();
if (selection instanceof IStructuredSelection) {
IStructuredSelection sSelection = (IStructuredSelection) selection;
Object[] selectedItems = sSelection.toArray();
for (Object selectedItem : selectedItems) {
if (selectedItem instanceof CloudServerURL) {
CloudServerURL cloudUrl = (CloudServerURL) selectedItem;
removeCloudUrl(cloudUrl);
}
}
}
viewer.refresh(true);
}
});
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
ISelection selection = event.getSelection();
if (selection instanceof IStructuredSelection) {
boolean editEnabled = true;