mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-04 06:45:43 +02:00
Add Open/Close buttons to connections page.
Signed-off-by: Greg Watson <g.watson@computer.org>
This commit is contained in:
parent
711905b239
commit
d527909629
3 changed files with 81 additions and 14 deletions
|
@ -22,16 +22,26 @@ public class Messages extends NLS {
|
|||
|
||||
public static String ConnectionsPreferencePage_Add;
|
||||
|
||||
public static String ConnectionsPreferencePage_closed;
|
||||
|
||||
public static String ConnectionsPreferencePage_Close;
|
||||
|
||||
public static String ConnectionsPreferencePage_Connection_Name;
|
||||
|
||||
public static String ConnectionsPreferencePage_Edit;
|
||||
|
||||
public static String ConnectionsPreferencePage_Host;
|
||||
|
||||
public static String ConnectionsPreferencePage_open;
|
||||
|
||||
public static String ConnectionsPreferencePage_Open;
|
||||
|
||||
public static String ConnectionsPreferencePage_Remote_Services;
|
||||
|
||||
public static String ConnectionsPreferencePage_Remove;
|
||||
|
||||
public static String ConnectionsPreferencePage_Status;
|
||||
|
||||
public static String ConnectionsPreferencePage_User;
|
||||
|
||||
public static String LocalUIConnectionManager_0;
|
||||
|
|
|
@ -8,11 +8,16 @@ AbstractRemoteUIConnectionManager_Could_not_open_connection=Could not open conne
|
|||
###############################################################################
|
||||
AbstractRemoteUIConnectionManager_Connection_Error=Connection Error
|
||||
ConnectionsPreferencePage_Add=Add
|
||||
ConnectionsPreferencePage_Close=Close
|
||||
ConnectionsPreferencePage_closed=closed
|
||||
ConnectionsPreferencePage_Connection_Name=Connection Name
|
||||
ConnectionsPreferencePage_Edit=Edit
|
||||
ConnectionsPreferencePage_Host=Host
|
||||
ConnectionsPreferencePage_open=open
|
||||
ConnectionsPreferencePage_Open=Open
|
||||
ConnectionsPreferencePage_Remote_Services=Remote Services:
|
||||
ConnectionsPreferencePage_Remove=Remove
|
||||
ConnectionsPreferencePage_Status=Status
|
||||
ConnectionsPreferencePage_User=User
|
||||
LocalUIConnectionManager_0=Connection Error
|
||||
LocalUIConnectionManager_1=Could not open connection
|
||||
|
|
|
@ -98,10 +98,12 @@ public class ConnectionsPreferencePage extends PreferencePage implements IWorkbe
|
|||
IRemoteConnection connection = (IRemoteConnection) element;
|
||||
switch (columnIndex) {
|
||||
case 0:
|
||||
return connection.getName();
|
||||
return connection.isOpen() ? Messages.ConnectionsPreferencePage_open : Messages.ConnectionsPreferencePage_closed;
|
||||
case 1:
|
||||
return connection.getAddress();
|
||||
return connection.getName();
|
||||
case 2:
|
||||
return connection.getAddress();
|
||||
case 3:
|
||||
return connection.getUsername();
|
||||
}
|
||||
return null;
|
||||
|
@ -139,6 +141,10 @@ public class ConnectionsPreferencePage extends PreferencePage implements IWorkbe
|
|||
editConnection();
|
||||
} else if (source == fRemoveButton) {
|
||||
removeConnections();
|
||||
} else if (source == fOpenButton) {
|
||||
toggleConnection();
|
||||
} else if (source == fCloseButton) {
|
||||
toggleConnection();
|
||||
} else if (source == fConnectionTable) {
|
||||
selectConnection();
|
||||
} else if (source == fServicesCombo) {
|
||||
|
@ -149,16 +155,18 @@ public class ConnectionsPreferencePage extends PreferencePage implements IWorkbe
|
|||
|
||||
}
|
||||
|
||||
private final String[] fTableColumnHeaders = { Messages.ConnectionsPreferencePage_Connection_Name,
|
||||
private final String[] fTableColumnHeaders = { Messages.ConnectionsPreferencePage_Status, Messages.ConnectionsPreferencePage_Connection_Name,
|
||||
Messages.ConnectionsPreferencePage_Host, Messages.ConnectionsPreferencePage_User };
|
||||
|
||||
private final ColumnLayoutData[] fTableColumnLayouts = { new ColumnWeightData(30), new ColumnWeightData(50),
|
||||
new ColumnWeightData(20) };
|
||||
private final ColumnLayoutData[] fTableColumnLayouts = { new ColumnWeightData(15), new ColumnWeightData(35),
|
||||
new ColumnWeightData(30), new ColumnWeightData(20) };
|
||||
|
||||
private Combo fServicesCombo;
|
||||
private Button fAddButton;
|
||||
private Button fEditButton;
|
||||
private Button fRemoveButton;
|
||||
private Button fOpenButton;
|
||||
private Button fCloseButton;
|
||||
private Table fConnectionTable;
|
||||
private TableViewer fConnectionViewer;
|
||||
private EventHandler fEventHandler;
|
||||
|
@ -289,6 +297,16 @@ public class ConnectionsPreferencePage extends PreferencePage implements IWorkbe
|
|||
fRemoveButton.setText(Messages.ConnectionsPreferencePage_Remove);
|
||||
fRemoveButton.addSelectionListener(fEventHandler);
|
||||
fRemoveButton.setEnabled(false);
|
||||
fOpenButton = new Button(buttonPane, SWT.PUSH);
|
||||
setButtonLayoutData(fOpenButton);
|
||||
fOpenButton.setText(Messages.ConnectionsPreferencePage_Open);
|
||||
fOpenButton.addSelectionListener(fEventHandler);
|
||||
fOpenButton.setEnabled(false);
|
||||
fCloseButton = new Button(buttonPane, SWT.PUSH);
|
||||
setButtonLayoutData(fCloseButton);
|
||||
fCloseButton.setText(Messages.ConnectionsPreferencePage_Close);
|
||||
fCloseButton.addSelectionListener(fEventHandler);
|
||||
fCloseButton.setEnabled(false);
|
||||
|
||||
String id = Preferences.getString(IRemotePreferenceConstants.PREF_REMOTE_SERVICES_ID);
|
||||
if ("".equals(id)) { //$NON-NLS-1$
|
||||
|
@ -337,10 +355,6 @@ public class ConnectionsPreferencePage extends PreferencePage implements IWorkbe
|
|||
return name;
|
||||
}
|
||||
|
||||
private Set<String> invalidConnectionNames() {
|
||||
return fWorkingCopies.keySet();
|
||||
}
|
||||
|
||||
private void initWorkingConnections() {
|
||||
fWorkingCopies.clear();
|
||||
for (IRemoteConnection conn : fConnectionManager.getConnections()) {
|
||||
|
@ -348,6 +362,10 @@ public class ConnectionsPreferencePage extends PreferencePage implements IWorkbe
|
|||
}
|
||||
}
|
||||
|
||||
private Set<String> invalidConnectionNames() {
|
||||
return fWorkingCopies.keySet();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void performDefaults() {
|
||||
initWorkingConnections();
|
||||
|
@ -389,14 +407,12 @@ public class ConnectionsPreferencePage extends PreferencePage implements IWorkbe
|
|||
*/
|
||||
private void selectConnection() {
|
||||
TableItem[] selection = fConnectionTable.getSelection();
|
||||
fEditButton.setEnabled(false);
|
||||
fRemoveButton.setEnabled(false);
|
||||
if (selection.length > 0) {
|
||||
fSelectedConnection = (IRemoteConnection) selection[0].getData();
|
||||
IRemoteServices services = fSelectedConnection.getRemoteServices();
|
||||
fEditButton.setEnabled((services.getCapabilities() & IRemoteServices.CAPABILITY_EDIT_CONNECTIONS) != 0);
|
||||
fRemoveButton.setEnabled((services.getCapabilities() & IRemoteServices.CAPABILITY_REMOVE_CONNECTIONS) != 0);
|
||||
} else {
|
||||
fSelectedConnection = null;
|
||||
}
|
||||
updateEnablement();
|
||||
}
|
||||
|
||||
private void selectServices(String id) {
|
||||
|
@ -411,6 +427,27 @@ public class ConnectionsPreferencePage extends PreferencePage implements IWorkbe
|
|||
fIsDirty = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Toggle the connection
|
||||
*/
|
||||
private void toggleConnection() {
|
||||
TableItem[] items = fConnectionTable.getSelection();
|
||||
if (items.length > 0) {
|
||||
IRemoteConnection conn = (IRemoteConnection) items[0].getData();
|
||||
if (conn.isOpen()) {
|
||||
conn.close();
|
||||
} else {
|
||||
IRemoteUIConnectionManager mgr = RemoteUIServices.getRemoteUIServices(conn.getRemoteServices())
|
||||
.getUIConnectionManager();
|
||||
if (mgr != null) {
|
||||
mgr.openConnectionWithProgress(getShell(), null, conn);
|
||||
}
|
||||
}
|
||||
fConnectionViewer.refresh();
|
||||
updateEnablement();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the connection manager with changes to the connections.
|
||||
*/
|
||||
|
@ -437,4 +474,19 @@ public class ConnectionsPreferencePage extends PreferencePage implements IWorkbe
|
|||
}
|
||||
initWorkingConnections();
|
||||
}
|
||||
|
||||
private void updateEnablement() {
|
||||
fEditButton.setEnabled(false);
|
||||
fRemoveButton.setEnabled(false);
|
||||
fOpenButton.setEnabled(false);
|
||||
fCloseButton.setEnabled(false);
|
||||
if (fSelectedConnection != null) {
|
||||
fEditButton
|
||||
.setEnabled((fSelectedConnection.getRemoteServices().getCapabilities() & IRemoteServices.CAPABILITY_EDIT_CONNECTIONS) != 0);
|
||||
fRemoveButton
|
||||
.setEnabled((fSelectedConnection.getRemoteServices().getCapabilities() & IRemoteServices.CAPABILITY_REMOVE_CONNECTIONS) != 0);
|
||||
fOpenButton.setEnabled(!fSelectedConnection.isOpen());
|
||||
fCloseButton.setEnabled(fSelectedConnection.isOpen());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue