mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-03 14:25:37 +02:00
[178020] [178021] [178023] IActionFilter related API changes
This commit is contained in:
parent
4ec2eb27a9
commit
684e3b0a7e
22 changed files with 758 additions and 854 deletions
|
@ -15,6 +15,7 @@
|
|||
********************************************************************************/
|
||||
package org.eclipse.rse.core;
|
||||
|
||||
|
||||
/**
|
||||
* Interface for RSE core registry. Clients should use this interface as the starting point for querying and
|
||||
* manipulating model objects in the RSE framework.
|
||||
|
|
|
@ -161,7 +161,7 @@ public class RSECorePlugin extends Plugin {
|
|||
* @return the RSE core registry.
|
||||
*/
|
||||
public IRSECoreRegistry getRegistry() {
|
||||
return RSECoreRegistry.getDefault();
|
||||
return RSECoreRegistry.getInstance();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -17,8 +17,10 @@ package org.eclipse.rse.core.internal;
|
|||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IConfigurationElement;
|
||||
|
@ -37,15 +39,16 @@ public class RSECoreRegistry implements IRSECoreRegistry {
|
|||
// the singleton instance
|
||||
private static RSECoreRegistry instance = null;
|
||||
|
||||
// extension registry
|
||||
private IExtensionRegistry registry;
|
||||
|
||||
// state variables
|
||||
private boolean hasReadSystemTypes;
|
||||
|
||||
// model objects
|
||||
private IRSESystemType[] systemTypes;
|
||||
|
||||
// Cache for accessed system type either by id or by name. Avoids to
|
||||
// re-iterate over all registered ones each call again.
|
||||
private final Map accessedSystemTypeCache = new HashMap();
|
||||
|
||||
// constants
|
||||
private static final String ELEMENT_SYTEM_TYPE = "systemType"; //$NON-NLS-1$
|
||||
|
||||
|
@ -54,21 +57,13 @@ public class RSECoreRegistry implements IRSECoreRegistry {
|
|||
*/
|
||||
private RSECoreRegistry() {
|
||||
super();
|
||||
init();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the registry. This should only be called from the constructor.
|
||||
*/
|
||||
private void init() {
|
||||
registry = Platform.getExtensionRegistry();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the singleton instance of the registry.
|
||||
* @return the singleton instance
|
||||
*/
|
||||
public static final RSECoreRegistry getDefault() {
|
||||
public static final RSECoreRegistry getInstance() {
|
||||
|
||||
if (instance == null) {
|
||||
instance = new RSECoreRegistry();
|
||||
|
@ -95,12 +90,18 @@ public class RSECoreRegistry implements IRSECoreRegistry {
|
|||
*/
|
||||
public IRSESystemType getSystemTypeById(String systemTypeId) {
|
||||
if (systemTypeId != null) {
|
||||
IRSESystemType[] types = getSystemTypes();
|
||||
for (int i = 0; i < types.length; i++) {
|
||||
if (types[i].getId().equals(systemTypeId)) {
|
||||
return types[i];
|
||||
IRSESystemType systemType = (IRSESystemType)accessedSystemTypeCache.get(systemTypeId);
|
||||
if (systemType == null) {
|
||||
// We have to re-lookup the system type
|
||||
IRSESystemType[] types = getSystemTypes();
|
||||
for (int i = 0; i < types.length && systemType == null; i++) {
|
||||
if (types[i].getId().equals(systemTypeId)) {
|
||||
systemType = types[i];
|
||||
}
|
||||
}
|
||||
if (systemType != null) accessedSystemTypeCache.put(systemTypeId, systemType);
|
||||
}
|
||||
return systemType;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -109,28 +110,35 @@ public class RSECoreRegistry implements IRSECoreRegistry {
|
|||
* @see org.eclipse.rse.core.IRSECoreRegistry#getSystemType(java.lang.String)
|
||||
*/
|
||||
public IRSESystemType getSystemType(String name) {
|
||||
IRSESystemType[] types = getSystemTypes();
|
||||
|
||||
for (int i = 0; i < types.length; i++) {
|
||||
IRSESystemType type = types[i];
|
||||
|
||||
if (type.getName().equals(name)) {
|
||||
return type;
|
||||
if (name != null) {
|
||||
IRSESystemType systemType = (IRSESystemType)accessedSystemTypeCache.get(name);
|
||||
if (systemType == null) {
|
||||
// We have to re-lookup the system type
|
||||
IRSESystemType[] types = getSystemTypes();
|
||||
for (int i = 0; i < types.length && systemType == null; i++) {
|
||||
if (types[i].getName().equals(name)) {
|
||||
systemType = types[i];
|
||||
}
|
||||
}
|
||||
if (systemType != null) accessedSystemTypeCache.put(name, systemType);
|
||||
}
|
||||
return systemType;
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads system types from the extension point registry and returns the defined system types.
|
||||
* @return an array of system types that have been defined
|
||||
*
|
||||
* @return An array of system types that have been defined.
|
||||
*/
|
||||
private IRSESystemType[] readSystemTypes() {
|
||||
List types = new LinkedList();
|
||||
List typeIds = new ArrayList();
|
||||
accessedSystemTypeCache.clear();
|
||||
|
||||
IExtensionRegistry registry = getExtensionRegistry();
|
||||
IExtensionRegistry registry = Platform.getExtensionRegistry();
|
||||
|
||||
// First we take the direct system type contributions via extension point
|
||||
IConfigurationElement[] elements = registry.getConfigurationElementsFor(PI_RSE_CORE, PI_SYSTEM_TYPES);
|
||||
|
@ -143,6 +151,10 @@ public class RSECoreRegistry implements IRSECoreRegistry {
|
|||
types.add(type);
|
||||
typeIds.add(type.getId());
|
||||
|
||||
// Build up the cache directly for improving access performance.
|
||||
accessedSystemTypeCache.put(type.getId(), type);
|
||||
accessedSystemTypeCache.put(type.getName(), type);
|
||||
|
||||
String message = "Successfully registered RSE system type ''{0}'' (id = ''{1}'')."; //$NON-NLS-1$
|
||||
message = MessageFormat.format(message, new Object[] { type.getLabel(), type.getId() });
|
||||
RSECorePlugin.getDefault().getLogger().logInfo(message);
|
||||
|
@ -170,6 +182,10 @@ public class RSECoreRegistry implements IRSECoreRegistry {
|
|||
types.add(type);
|
||||
typeIds.add(type.getId());
|
||||
|
||||
// Build up the cache directly for improving access performance.
|
||||
accessedSystemTypeCache.put(type.getId(), type);
|
||||
accessedSystemTypeCache.put(type.getName(), type);
|
||||
|
||||
String message = "Successfully registered RSE system type ''{0}'' (id = ''{1}'')."; //$NON-NLS-1$
|
||||
message = MessageFormat.format(message, new Object[] { type.getLabel(), type.getId() });
|
||||
RSECorePlugin.getDefault().getLogger().logInfo(message);
|
||||
|
@ -189,12 +205,4 @@ public class RSECoreRegistry implements IRSECoreRegistry {
|
|||
|
||||
return (IRSESystemType[])types.toArray(new IRSESystemType[types.size()]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the platform extension registry.
|
||||
* @return the platform extension registry
|
||||
*/
|
||||
private IExtensionRegistry getExtensionRegistry() {
|
||||
return registry;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/********************************************************************************
|
||||
* Copyright (c) 2006 IBM Corporation. All rights reserved.
|
||||
* Copyright (c) 2006, 2007 IBM Corporation and others. All rights reserved.
|
||||
* This program and the accompanying materials are made available under the terms
|
||||
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
|
||||
* available at http://www.eclipse.org/legal/epl-v10.html
|
||||
|
@ -11,7 +11,7 @@
|
|||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||
*
|
||||
* Contributors:
|
||||
* {Name} (company) - description of contribution.
|
||||
* Uwe Stieber (Wind River) - Dynamic system type provider extension.
|
||||
********************************************************************************/
|
||||
package org.eclipse.rse.core.internal;
|
||||
|
||||
|
@ -22,6 +22,7 @@ import java.util.Map;
|
|||
|
||||
import org.eclipse.core.runtime.IConfigurationElement;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.core.runtime.PlatformObject;
|
||||
import org.eclipse.rse.core.IRSESystemType;
|
||||
import org.eclipse.rse.core.IRSESystemTypeConstants;
|
||||
import org.osgi.framework.Bundle;
|
||||
|
@ -29,7 +30,7 @@ import org.osgi.framework.Bundle;
|
|||
/**
|
||||
* Class representing a system type.
|
||||
*/
|
||||
public class RSESystemType implements IRSESystemType {
|
||||
public class RSESystemType extends PlatformObject implements IRSESystemType {
|
||||
|
||||
private static final String ATTR_ID = "id"; //$NON-NLS-1$
|
||||
private static final String ATTR_NAME = "name"; //$NON-NLS-1$
|
||||
|
@ -151,11 +152,4 @@ public class RSESystemType implements IRSESystemType {
|
|||
public String[] getSubsystemConfigurationIds() {
|
||||
return subsystemConfigurationIds;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
|
||||
*/
|
||||
public Object getAdapter(Class adapter) {
|
||||
return Platform.getAdapterManager().getAdapter(this, adapter);
|
||||
}
|
||||
}
|
|
@ -474,10 +474,10 @@ public class SystemViewRemoteSearchResultAdapter extends AbstractSystemViewAdapt
|
|||
int idx = -1;
|
||||
|
||||
// path
|
||||
_propertyDescriptors[++idx] = createSimplePropertyDescriptor(P_FILE_PATH, SystemViewResources.RESID_PROPERTY_FILE_PATH_LABEL, SystemViewResources.RESID_PROPERTY_FILE_PATH_TOOLTIP);
|
||||
_propertyDescriptors[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_FILE_PATH, SystemViewResources.RESID_PROPERTY_FILE_PATH_LABEL, SystemViewResources.RESID_PROPERTY_FILE_PATH_TOOLTIP);
|
||||
|
||||
// char start
|
||||
_propertyDescriptors[++idx] = createSimplePropertyDescriptor(P_SEARCH_LINE, SystemViewResources.RESID_PROPERTY_SEARCH_LINE_LABEL, SystemViewResources.RESID_PROPERTY_SEARCH_LINE_TOOLTIP);
|
||||
_propertyDescriptors[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_SEARCH_LINE, SystemViewResources.RESID_PROPERTY_SEARCH_LINE_LABEL, SystemViewResources.RESID_PROPERTY_SEARCH_LINE_TOOLTIP);
|
||||
//_propertyDescriptors[++idx] = createSimplePropertyDescriptor(P_SEARCH_CHAR_END, SystemViewResources.RESID_PROPERTY_SEARCH_CHAR_END_ROOT);
|
||||
}
|
||||
return _propertyDescriptors;
|
||||
|
@ -496,11 +496,11 @@ public class SystemViewRemoteSearchResultAdapter extends AbstractSystemViewAdapt
|
|||
{
|
||||
IHostSearchResult output = (IHostSearchResult) propertySourceInput;
|
||||
|
||||
if (name.equals(P_FILE_PATH))
|
||||
if (name.equals(ISystemPropertyConstants.P_FILE_PATH))
|
||||
{
|
||||
return output.getAbsolutePath();
|
||||
}
|
||||
else if (name.equals(P_SEARCH_LINE))
|
||||
else if (name.equals(ISystemPropertyConstants.P_SEARCH_LINE))
|
||||
{
|
||||
return new Integer(output.getLine());
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
|
|||
import org.eclipse.rse.internal.ui.view.SystemViewResources;
|
||||
import org.eclipse.rse.subsystems.shells.core.subsystems.IRemoteError;
|
||||
import org.eclipse.rse.ui.SystemMenuManager;
|
||||
import org.eclipse.rse.ui.view.ISystemPropertyConstants;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.eclipse.ui.views.properties.IPropertyDescriptor;
|
||||
import org.eclipse.ui.views.properties.PropertyDescriptor;
|
||||
|
@ -56,10 +57,10 @@ public class SystemViewRemoteErrorAdapter extends SystemViewRemoteOutputAdapter
|
|||
//RSEUIPlugin plugin = RSEUIPlugin.getDefault();
|
||||
|
||||
// path
|
||||
_uniquePropertyDescriptorArray[++i] = createSimplePropertyDescriptor(P_ERROR_FILENAME, SystemViewResources.RESID_PROPERTY_ERROR_FILENAME_LABEL, SystemViewResources.RESID_PROPERTY_ERROR_FILENAME_TOOLTIP);
|
||||
_uniquePropertyDescriptorArray[++i] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_ERROR_FILENAME, SystemViewResources.RESID_PROPERTY_ERROR_FILENAME_LABEL, SystemViewResources.RESID_PROPERTY_ERROR_FILENAME_TOOLTIP);
|
||||
|
||||
// line
|
||||
_uniquePropertyDescriptorArray[++i] = createSimplePropertyDescriptor(P_ERROR_LINENO, SystemViewResources.RESID_PROPERTY_ERROR_LINENO_LABEL, SystemViewResources.RESID_PROPERTY_ERROR_LINENO_TOOLTIP);
|
||||
_uniquePropertyDescriptorArray[++i] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_ERROR_LINENO, SystemViewResources.RESID_PROPERTY_ERROR_LINENO_LABEL, SystemViewResources.RESID_PROPERTY_ERROR_LINENO_TOOLTIP);
|
||||
}
|
||||
|
||||
return _uniquePropertyDescriptorArray;
|
||||
|
@ -80,7 +81,7 @@ public class SystemViewRemoteErrorAdapter extends SystemViewRemoteOutputAdapter
|
|||
int idx = -1;
|
||||
|
||||
// path
|
||||
_propertyDescriptors[++idx] = createSimplePropertyDescriptor(P_FILE_PATH, SystemViewResources.RESID_PROPERTY_FILE_PATH_LABEL, SystemViewResources.RESID_PROPERTY_FILE_PATH_TOOLTIP);
|
||||
_propertyDescriptors[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_FILE_PATH, SystemViewResources.RESID_PROPERTY_FILE_PATH_LABEL, SystemViewResources.RESID_PROPERTY_FILE_PATH_TOOLTIP);
|
||||
// append...
|
||||
for (int i = 0; i < unique.length; i++)
|
||||
{
|
||||
|
@ -101,15 +102,15 @@ public class SystemViewRemoteErrorAdapter extends SystemViewRemoteOutputAdapter
|
|||
{
|
||||
IRemoteError output = (IRemoteError) propertySourceInput;
|
||||
|
||||
if (name.equals(P_FILE_PATH))
|
||||
if (name.equals(ISystemPropertyConstants.P_FILE_PATH))
|
||||
{
|
||||
return output.getAbsolutePath();
|
||||
}
|
||||
else if (name.equals(P_ERROR_FILENAME))
|
||||
else if (name.equals(ISystemPropertyConstants.P_ERROR_FILENAME))
|
||||
{
|
||||
return output.getAbsolutePath();
|
||||
}
|
||||
else if (name.equals(P_ERROR_LINENO))
|
||||
else if (name.equals(ISystemPropertyConstants.P_ERROR_LINENO))
|
||||
{
|
||||
return new Integer(output.getLine());
|
||||
}
|
||||
|
|
|
@ -1150,8 +1150,8 @@ implements ISystemViewElementAdapter, ISystemRemoteElementAdapter, ISystemOutpu
|
|||
{
|
||||
_shellPropertyDescriptors = new IPropertyDescriptor[2];
|
||||
|
||||
_shellPropertyDescriptors[0] = createSimplePropertyDescriptor(P_SHELL_STATUS, SystemViewResources.RESID_PROPERTY_SHELL_STATUS_LABEL, SystemViewResources.RESID_PROPERTY_SHELL_STATUS_TOOLTIP);
|
||||
_shellPropertyDescriptors[1] = createSimplePropertyDescriptor(P_SHELL_CONTEXT, SystemViewResources.RESID_PROPERTY_SHELL_CONTEXT_LABEL, SystemViewResources.RESID_PROPERTY_SHELL_CONTEXT_TOOLTIP);
|
||||
_shellPropertyDescriptors[0] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_SHELL_STATUS, SystemViewResources.RESID_PROPERTY_SHELL_STATUS_LABEL, SystemViewResources.RESID_PROPERTY_SHELL_STATUS_TOOLTIP);
|
||||
_shellPropertyDescriptors[1] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_SHELL_CONTEXT, SystemViewResources.RESID_PROPERTY_SHELL_CONTEXT_LABEL, SystemViewResources.RESID_PROPERTY_SHELL_CONTEXT_TOOLTIP);
|
||||
}
|
||||
return _shellPropertyDescriptors;
|
||||
}
|
||||
|
|
|
@ -530,21 +530,21 @@ public class SystemViewConnectionAdapter
|
|||
String name = (String)key;
|
||||
IHost conn = (IHost)propertySourceInput;
|
||||
|
||||
if (name.equals(P_SYSTEMTYPE))
|
||||
if (name.equals(ISystemPropertyConstants.P_SYSTEMTYPE))
|
||||
return conn.getSystemType();
|
||||
else if (name.equals(P_HOSTNAME))
|
||||
else if (name.equals(ISystemPropertyConstants.P_HOSTNAME))
|
||||
return conn.getHostName();
|
||||
else if (name.equals(P_DEFAULTUSERID))
|
||||
else if (name.equals(ISystemPropertyConstants.P_DEFAULTUSERID))
|
||||
{
|
||||
setDefaultUserIdPropertyData(userIdData, conn);
|
||||
//System.out.println("Testing getPropertyValue: " + userIdData);
|
||||
return userIdData;
|
||||
}
|
||||
else if (name.equals(P_DESCRIPTION))
|
||||
else if (name.equals(ISystemPropertyConstants.P_DESCRIPTION))
|
||||
return conn.getDescription();
|
||||
else if (name.equals(P_PROFILE))
|
||||
else if (name.equals(ISystemPropertyConstants.P_PROFILE))
|
||||
return conn.getSystemProfile().getName();
|
||||
else if (name.equals(P_IS_CONNECTED))
|
||||
else if (name.equals(ISystemPropertyConstants.P_IS_CONNECTED))
|
||||
{
|
||||
if (conn.isOffline())
|
||||
{
|
||||
|
@ -606,11 +606,11 @@ public class SystemViewConnectionAdapter
|
|||
{
|
||||
String property = (String)propertyObject;
|
||||
boolean changed = false;
|
||||
if (property.equals(P_DEFAULTUSERID))
|
||||
if (property.equals(ISystemPropertyConstants.P_DEFAULTUSERID))
|
||||
changed = changed_userId;
|
||||
else if (property.equals(P_HOSTNAME))
|
||||
else if (property.equals(ISystemPropertyConstants.P_HOSTNAME))
|
||||
changed = changed_hostName;
|
||||
else if (property.equals(P_DESCRIPTION))
|
||||
else if (property.equals(ISystemPropertyConstants.P_DESCRIPTION))
|
||||
changed = changed_description;
|
||||
return changed;
|
||||
}
|
||||
|
@ -625,18 +625,18 @@ public class SystemViewConnectionAdapter
|
|||
IHost conn = (IHost)propertySourceInput;
|
||||
ISystemRegistryUI sr = RSEUIPlugin.getDefault().getSystemRegistry();
|
||||
|
||||
if (property.equals(P_DEFAULTUSERID))
|
||||
if (property.equals(ISystemPropertyConstants.P_DEFAULTUSERID))
|
||||
{
|
||||
//sr.updateConnection(null, conn, conn.getSystemType(), conn.getAliasName(),
|
||||
// conn.getHostName(), conn.getDescription(), original_userId, USERID_LOCATION_CONNECTION);
|
||||
updateDefaultUserId(conn, original_userIdData);
|
||||
}
|
||||
else if (property.equals(P_HOSTNAME))
|
||||
else if (property.equals(ISystemPropertyConstants.P_HOSTNAME))
|
||||
{
|
||||
sr.updateHost(null, conn, conn.getSystemType(), conn.getAliasName(),
|
||||
original_hostName, conn.getDescription(), conn.getDefaultUserId(), IRSEUserIdConstants.USERID_LOCATION_NOTSET);
|
||||
}
|
||||
else if (property.equals(P_DESCRIPTION))
|
||||
else if (property.equals(ISystemPropertyConstants.P_DESCRIPTION))
|
||||
{
|
||||
sr.updateHost(null, conn, conn.getSystemType(), conn.getAliasName(),
|
||||
conn.getHostName(), original_description, conn.getDefaultUserId(), IRSEUserIdConstants.USERID_LOCATION_NOTSET);
|
||||
|
@ -665,7 +665,7 @@ public class SystemViewConnectionAdapter
|
|||
IHost conn = (IHost)propertySourceInput;
|
||||
ISystemRegistryUI sr = RSEUIPlugin.getDefault().getSystemRegistry();
|
||||
|
||||
if (name.equals(P_DEFAULTUSERID))
|
||||
if (name.equals(ISystemPropertyConstants.P_DEFAULTUSERID))
|
||||
{
|
||||
//System.out.println("Testing setPropertyValue: " + value);
|
||||
//sr.updateConnection(null, conn, conn.getSystemType(), conn.getAliasName(),
|
||||
|
@ -673,7 +673,7 @@ public class SystemViewConnectionAdapter
|
|||
updateDefaultUserId(conn, (SystemInheritablePropertyData)value);
|
||||
changed_userId = true;
|
||||
}
|
||||
else if (name.equals(P_HOSTNAME))
|
||||
else if (name.equals(ISystemPropertyConstants.P_HOSTNAME))
|
||||
{
|
||||
// DKM - don't update unless it really changed
|
||||
// defect 57739
|
||||
|
@ -684,7 +684,7 @@ public class SystemViewConnectionAdapter
|
|||
changed_hostName = true;
|
||||
}
|
||||
}
|
||||
else if (name.equals(P_DESCRIPTION))
|
||||
else if (name.equals(ISystemPropertyConstants.P_DESCRIPTION))
|
||||
{
|
||||
// DKM - don't update unless it really changed
|
||||
// defect 57739
|
||||
|
|
|
@ -355,11 +355,11 @@ public class SystemViewFilterAdapter extends AbstractSystemViewAdapter
|
|||
int idx = 0;
|
||||
|
||||
// parent filter pool
|
||||
propertyDescriptorArray[idx] = createSimplePropertyDescriptor(P_PARENT_FILTERPOOL,SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_TOOLTIP);
|
||||
propertyDescriptorArray[idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_PARENT_FILTERPOOL,SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_TOOLTIP);
|
||||
// parent filter
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(P_PARENT_FILTER,SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_TOOLTIP);
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_PARENT_FILTER,SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_TOOLTIP);
|
||||
// number filter strings
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(P_FILTERSTRINGS_COUNT,SystemViewResources.RESID_PROPERTY_FILTERSTRINGS_COUNT_LABEL, SystemViewResources.RESID_PROPERTY_FILTERSTRINGS_COUNT_TOOLTIP);
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_FILTERSTRINGS_COUNT,SystemViewResources.RESID_PROPERTY_FILTERSTRINGS_COUNT_LABEL, SystemViewResources.RESID_PROPERTY_FILTERSTRINGS_COUNT_TOOLTIP);
|
||||
}
|
||||
return propertyDescriptorArray;
|
||||
}
|
||||
|
|
|
@ -181,13 +181,13 @@ public class SystemViewFilterPoolAdapter extends AbstractSystemViewAdapter
|
|||
int idx = 0;
|
||||
|
||||
// parent filter pool
|
||||
propertyDescriptorArray[idx] = createSimplePropertyDescriptor(P_PARENT_FILTERPOOL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPOOL_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPOOL_TOOLTIP);
|
||||
propertyDescriptorArray[idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_PARENT_FILTERPOOL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPOOL_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPOOL_TOOLTIP);
|
||||
|
||||
// parent filter pool's profile
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(P_PROFILE, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPROFILE_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPROFILE_TOOLTIP);
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_PROFILE, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPROFILE_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPROFILE_TOOLTIP);
|
||||
|
||||
// Related connection
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(P_RELATED_CONNECTION, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_RELATEDCONNECTION_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_RELATEDCONNECTION_TOOLTIP);
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_RELATED_CONNECTION, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_RELATEDCONNECTION_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_RELATEDCONNECTION_TOOLTIP);
|
||||
|
||||
}
|
||||
return propertyDescriptorArray;
|
||||
|
|
|
@ -235,13 +235,13 @@ public class SystemViewFilterPoolReferenceAdapter
|
|||
int idx = 0;
|
||||
|
||||
// parent filter pool
|
||||
propertyDescriptorArray[idx] = createSimplePropertyDescriptor(P_PARENT_FILTERPOOL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPOOL_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPOOL_TOOLTIP);
|
||||
propertyDescriptorArray[idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_PARENT_FILTERPOOL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPOOL_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPOOL_TOOLTIP);
|
||||
|
||||
// parent filter pool's profile
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(P_PROFILE, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPROFILE_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPROFILE_TOOLTIP);
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_PROFILE, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPROFILE_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_PARENTPROFILE_TOOLTIP);
|
||||
|
||||
// Related connection
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(P_RELATED_CONNECTION, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_RELATEDCONNECTION_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_RELATEDCONNECTION_TOOLTIP);
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_RELATED_CONNECTION, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_RELATEDCONNECTION_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_RELATEDCONNECTION_TOOLTIP);
|
||||
}
|
||||
return propertyDescriptorArray;
|
||||
}
|
||||
|
|
|
@ -517,13 +517,13 @@ public class SystemViewFilterReferenceAdapter
|
|||
propertyDescriptorArray = new PropertyDescriptor[nbrOfProperties];
|
||||
int idx = 0;
|
||||
// parent filter pool
|
||||
propertyDescriptorArray[idx] = createSimplePropertyDescriptor(P_PARENT_FILTERPOOL, SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_TOOLTIP);
|
||||
propertyDescriptorArray[idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_PARENT_FILTERPOOL, SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_TOOLTIP);
|
||||
// parent filter
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(P_PARENT_FILTER, SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_TOOLTIP);
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_PARENT_FILTER, SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_TOOLTIP);
|
||||
// number filter strings
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(P_FILTERSTRINGS_COUNT, SystemViewResources.RESID_PROPERTY_FILTERSTRINGS_COUNT_LABEL, SystemViewResources.RESID_PROPERTY_FILTERSTRINGS_COUNT_TOOLTIP);
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_FILTERSTRINGS_COUNT, SystemViewResources.RESID_PROPERTY_FILTERSTRINGS_COUNT_LABEL, SystemViewResources.RESID_PROPERTY_FILTERSTRINGS_COUNT_TOOLTIP);
|
||||
// Related connection
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(P_IS_CONNECTION_PRIVATE, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_IS_CONNECTIONPRIVATE_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_IS_CONNECTIONPRIVATE_TOOLTIP);
|
||||
propertyDescriptorArray[++idx] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_IS_CONNECTION_PRIVATE, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_IS_CONNECTIONPRIVATE_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPOOLREFERENCE_IS_CONNECTIONPRIVATE_TOOLTIP);
|
||||
}
|
||||
return propertyDescriptorArray;
|
||||
}
|
||||
|
|
|
@ -162,11 +162,11 @@ public class SystemViewFilterStringAdapter extends AbstractSystemViewAdapter
|
|||
{
|
||||
propertyDescriptorArray = new PropertyDescriptor[3];
|
||||
// parent filter pool
|
||||
propertyDescriptorArray[0] = createSimplePropertyDescriptor(P_PARENT_FILTERPOOL,SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_TOOLTIP);
|
||||
propertyDescriptorArray[0] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_PARENT_FILTERPOOL,SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTPOOL_TOOLTIP);
|
||||
// parent filter
|
||||
propertyDescriptorArray[1] = createSimplePropertyDescriptor(P_PARENT_FILTER,SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_TOOLTIP);
|
||||
propertyDescriptorArray[1] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_PARENT_FILTER,SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_LABEL, SystemViewResources.RESID_PROPERTY_FILTERPARENTFILTER_TOOLTIP);
|
||||
// filter string
|
||||
propertyDescriptorArray[2] = createSimplePropertyDescriptor(P_FILTERSTRING,SystemViewResources.RESID_PROPERTY_FILTERSTRING_LABEL, SystemViewResources.RESID_PROPERTY_FILTERSTRING_TOOLTIP);
|
||||
propertyDescriptorArray[2] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_FILTERSTRING,SystemViewResources.RESID_PROPERTY_FILTERSTRING_LABEL, SystemViewResources.RESID_PROPERTY_FILTERSTRING_TOOLTIP);
|
||||
}
|
||||
return propertyDescriptorArray;
|
||||
}
|
||||
|
|
|
@ -309,7 +309,7 @@ public class SystemTeamViewProfileAdapter
|
|||
String name = (String)key;
|
||||
ISystemProfile profile = (ISystemProfile)propertySourceInput;
|
||||
|
||||
if (name.equals(P_IS_ACTIVE))
|
||||
if (name.equals(ISystemPropertyConstants.P_IS_ACTIVE))
|
||||
{
|
||||
boolean active = RSEUIPlugin.getTheSystemRegistry().getSystemProfileManager().isSystemProfileActive(profile.getName());
|
||||
if (active)
|
||||
|
|
|
@ -30,9 +30,10 @@ import org.eclipse.rse.core.IRSESystemTypeConstants;
|
|||
import org.eclipse.rse.core.RSECorePlugin;
|
||||
import org.eclipse.rse.core.RSEPreferencesManager;
|
||||
import org.eclipse.rse.core.model.IHost;
|
||||
import org.eclipse.rse.core.model.ISystemProfile;
|
||||
import org.eclipse.rse.core.model.ISystemRegistry;
|
||||
import org.eclipse.rse.core.subsystems.IConnectorService;
|
||||
import org.eclipse.rse.internal.ui.view.SystemView;
|
||||
import org.eclipse.rse.model.Host;
|
||||
import org.eclipse.rse.ui.actions.SystemClearAllPasswordsAction;
|
||||
import org.eclipse.rse.ui.actions.SystemWorkOfflineAction;
|
||||
import org.eclipse.rse.ui.wizards.registries.IRSEWizardDescriptor;
|
||||
|
@ -249,7 +250,7 @@ public class RSESystemTypeAdapter extends RSEAdapter {
|
|||
}
|
||||
|
||||
/**
|
||||
* Called from {@link SystemView#createStandardGroups(IMenuManager)} to allow dynamic system
|
||||
* Called from {@link org.eclipse.rse.internal.ui.view.SystemView#createStandardGroups(IMenuManager)} to allow dynamic system
|
||||
* type providers to customize the RSE standard menu structure regarding their needs.
|
||||
*
|
||||
* @param menu The menu manager. Must be not <code>null</code>.
|
||||
|
@ -313,4 +314,17 @@ public class RSESystemTypeAdapter extends RSEAdapter {
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new <code>IHost</code> object instance. This method is
|
||||
* called from {@link org.eclipse.rse.internal.model.SystemHostPool#createHost(String, String, String, String, String, int)}.
|
||||
*
|
||||
* @param profile The system profile to associate with the host.
|
||||
* @return A new <code>IHost</code> object instance.
|
||||
*/
|
||||
public IHost createNewHostInstance(ISystemProfile profile) {
|
||||
return new Host(profile);
|
||||
}
|
||||
|
||||
}
|
|
@ -474,33 +474,6 @@ public class RSEUIPlugin extends SystemBasePlugin implements ISystemMessageProvi
|
|||
registerDynamicPopupMenuExtensions();
|
||||
registerKeystoreProviders();
|
||||
|
||||
// if first time creating the remote systems project, add some default connections...
|
||||
// if (SystemResourceManager.isFirstTime()
|
||||
// && !dontShowLocalConnection) // new support to allow products to not pre-create a local connection
|
||||
// {
|
||||
//try
|
||||
//{
|
||||
|
||||
// registry.createLocalHost(null, SystemResources.TERM_LOCAL, SystemProfileManager.getSystemProfileManager().getDefaultPrivateSystemProfileName()); // profile, name, userId
|
||||
/* replaced with re-usable method by Phil, in v5.1.2
|
||||
SystemConnection localConn = registry.createConnection(
|
||||
//SystemResourceConstants.RESOURCE_TEAMPROFILE_NAME, IRSESystemType.SYSTEMTYPE_LOCAL,
|
||||
SystemResourceConstants.RESOURCE_PRIVATEPROFILE_NAME, IRSESystemType.SYSTEMTYPE_LOCAL,
|
||||
getString(ISystemConstants.TERM_LOCAL, "Local"), // connection name
|
||||
"localhost", // hostname
|
||||
"", // description
|
||||
// DY: defect 42101, description cannot be null
|
||||
// null, // description
|
||||
getLocalMachineName(), // userId
|
||||
IRSEUserIdConstants.USERID_LOCATION_DEFAULT_SYSTEMTYPE, null);
|
||||
*/
|
||||
//}
|
||||
//catch (Exception exc)
|
||||
//{
|
||||
//logError("Error creating default Local connection", exc);
|
||||
//}
|
||||
// }
|
||||
|
||||
// new support to allow products to not pre-create a local connection
|
||||
if (SystemResourceManager.isFirstTime() && SystemPreferencesManager.getShowLocalConnection()) {
|
||||
// create the connection only if the local system type is enabled!
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/********************************************************************************
|
||||
* Copyright (c) 2002, 2006 IBM Corporation. All rights reserved.
|
||||
* Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved.
|
||||
* This program and the accompanying materials are made available under the terms
|
||||
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
|
||||
* available at http://www.eclipse.org/legal/epl-v10.html
|
||||
|
@ -11,13 +11,15 @@
|
|||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||
*
|
||||
* Contributors:
|
||||
* {Name} (company) - description of contribution.
|
||||
* Uwe Stieber (Wind River) - Allow to extend action filter by dynamic system type providers.
|
||||
********************************************************************************/
|
||||
|
||||
package org.eclipse.rse.ui.view;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.StringTokenizer;
|
||||
import java.util.Vector;
|
||||
|
||||
|
@ -26,11 +28,17 @@ import org.eclipse.core.runtime.IProgressMonitor;
|
|||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
import org.eclipse.core.runtime.jobs.ISchedulingRule;
|
||||
import org.eclipse.jface.resource.ImageDescriptor;
|
||||
import org.eclipse.jface.viewers.IBasicPropertyConstants;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
import org.eclipse.jface.viewers.Viewer;
|
||||
import org.eclipse.rse.core.IRSESystemType;
|
||||
import org.eclipse.rse.core.RSECorePlugin;
|
||||
import org.eclipse.rse.core.SystemAdapterHelpers;
|
||||
import org.eclipse.rse.core.SystemBasePlugin;
|
||||
import org.eclipse.rse.core.filters.ISystemFilterPoolReference;
|
||||
import org.eclipse.rse.core.filters.ISystemFilterReference;
|
||||
import org.eclipse.rse.core.filters.ISystemFilterStringReference;
|
||||
import org.eclipse.rse.core.model.IHost;
|
||||
import org.eclipse.rse.core.model.ISystemMessageObject;
|
||||
import org.eclipse.rse.core.model.ISystemResourceSet;
|
||||
|
@ -60,12 +68,12 @@ import org.eclipse.swt.widgets.Shell;
|
|||
import org.eclipse.swt.widgets.Tree;
|
||||
import org.eclipse.swt.widgets.TreeItem;
|
||||
import org.eclipse.swt.widgets.Widget;
|
||||
import org.eclipse.ui.IActionFilter;
|
||||
import org.eclipse.ui.IWorkbenchPart;
|
||||
import org.eclipse.ui.model.IWorkbenchAdapter;
|
||||
import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
|
||||
import org.eclipse.ui.progress.IElementCollector;
|
||||
import org.eclipse.ui.views.properties.IPropertyDescriptor;
|
||||
import org.eclipse.ui.views.properties.IPropertySource;
|
||||
import org.eclipse.ui.views.properties.PropertyDescriptor;
|
||||
|
||||
|
||||
|
@ -74,10 +82,20 @@ import org.eclipse.ui.views.properties.PropertyDescriptor;
|
|||
* It implements the ISystemViewElementAdapter interface.
|
||||
* @see AbstractSystemRemoteAdapterFactory
|
||||
*/
|
||||
public abstract class AbstractSystemViewAdapter
|
||||
implements ISystemViewElementAdapter, IPropertySource, ISystemPropertyConstants, IWorkbenchAdapter,
|
||||
ISystemViewActionFilter, IDeferredWorkbenchAdapter
|
||||
public abstract class AbstractSystemViewAdapter implements ISystemViewElementAdapter, IWorkbenchAdapter,
|
||||
IDeferredWorkbenchAdapter
|
||||
{
|
||||
// Static action filter per system type cache. Filled from testAttribute.
|
||||
private final static Map ACTION_FILTER_CACHE = new HashMap();
|
||||
|
||||
// Internal helper class to cache system type -> no action filter relation ships.
|
||||
// Used from testAttribute.
|
||||
private final static class NULL_ACTION_FILTER implements IActionFilter {
|
||||
public boolean testAttribute(Object target, String name, String value) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//protected boolean isEditable = false;
|
||||
|
||||
protected String filterString = null;
|
||||
|
@ -90,6 +108,7 @@ public abstract class AbstractSystemViewAdapter
|
|||
* Current input provider. Set by content provider
|
||||
*/
|
||||
protected Object propertySourceInput = null;
|
||||
|
||||
/**
|
||||
* Current shell, set by the content provider
|
||||
*/
|
||||
|
@ -161,6 +180,13 @@ public abstract class AbstractSystemViewAdapter
|
|||
* A variable that can be used to cache last selection, if desired
|
||||
*/
|
||||
protected Object _lastSelected = null;
|
||||
|
||||
/**
|
||||
* Static constructor.
|
||||
*/
|
||||
static {
|
||||
ACTION_FILTER_CACHE.clear();
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Configuration methods, called by the label and content provider...
|
||||
|
@ -524,11 +550,11 @@ public abstract class AbstractSystemViewAdapter
|
|||
// The following determine what properties will be displayed in the PropertySheet
|
||||
// resource type
|
||||
int idx = 0;
|
||||
propertyDescriptorArray[idx++] = createSimplePropertyDescriptor(P_TYPE, SystemPropertyResources.RESID_PROPERTY_TYPE_LABEL, SystemPropertyResources.RESID_PROPERTY_TYPE_TOOLTIP);
|
||||
propertyDescriptorArray[idx++] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_TYPE, SystemPropertyResources.RESID_PROPERTY_TYPE_LABEL, SystemPropertyResources.RESID_PROPERTY_TYPE_TOOLTIP);
|
||||
// resource name
|
||||
propertyDescriptorArray[idx++] = createSimplePropertyDescriptor(P_TEXT, SystemPropertyResources.RESID_PROPERTY_NAME_LABEL, SystemPropertyResources.RESID_PROPERTY_NAME_TOOLTIP);
|
||||
propertyDescriptorArray[idx++] = createSimplePropertyDescriptor(IBasicPropertyConstants.P_TEXT, SystemPropertyResources.RESID_PROPERTY_NAME_LABEL, SystemPropertyResources.RESID_PROPERTY_NAME_TOOLTIP);
|
||||
// number of children in tree currently
|
||||
propertyDescriptorArray[idx++] = createSimplePropertyDescriptor(P_NBRCHILDREN, SystemViewResources.RESID_PROPERTY_NBRCHILDREN_LABEL, SystemViewResources.RESID_PROPERTY_NBRCHILDREN_TOOLTIP);
|
||||
propertyDescriptorArray[idx++] = createSimplePropertyDescriptor(ISystemPropertyConstants.P_NBRCHILDREN, SystemViewResources.RESID_PROPERTY_NBRCHILDREN_LABEL, SystemViewResources.RESID_PROPERTY_NBRCHILDREN_TOOLTIP);
|
||||
|
||||
}
|
||||
//System.out.println("In getDefaultDescriptors() in AbstractSystemViewAdapter");
|
||||
|
@ -698,12 +724,12 @@ public abstract class AbstractSystemViewAdapter
|
|||
public Object getPropertyValue(Object key)
|
||||
{
|
||||
String name = (String)key;
|
||||
if (name.equals(P_TEXT))
|
||||
if (name.equals(IBasicPropertyConstants.P_TEXT))
|
||||
//return getText(propertySourceInput);
|
||||
return getName(propertySourceInput);
|
||||
else if (name.equals(P_TYPE))
|
||||
else if (name.equals(ISystemPropertyConstants.P_TYPE))
|
||||
return getType(propertySourceInput);
|
||||
else if (name.equals(P_NBRCHILDREN))
|
||||
else if (name.equals(ISystemPropertyConstants.P_NBRCHILDREN))
|
||||
{
|
||||
ISystemTree tree = getSystemTree();
|
||||
if (tree != null)
|
||||
|
@ -1458,6 +1484,50 @@ public abstract class AbstractSystemViewAdapter
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Give the ISV's as the element owners/contibutors the chance to extend the standard RSE action
|
||||
// filters for their specific needs. We do this by trying to determine the system type from the
|
||||
// target object and try to adapt the system type to an IActionFilter.
|
||||
//
|
||||
// Note: Everything we do here is performance critical to the menu to show up. Therefor
|
||||
// we cache as much as possible here. The cache is static to all AbstractSystemViewAdapter
|
||||
// instances throughout the whole hierarchy.
|
||||
IHost conn = null;
|
||||
if (target instanceof IHost) {
|
||||
conn = (IHost)target;
|
||||
} else if (target instanceof ISubSystem) {
|
||||
conn = ((ISubSystem)target).getHost();
|
||||
} else if (target instanceof ISystemFilterPoolReference) {
|
||||
ISystemFilterPoolReference modelObject = (ISystemFilterPoolReference)target;
|
||||
if (modelObject.getProvider() != null) conn = ((ISubSystem)modelObject.getProvider()).getHost();
|
||||
} else if (target instanceof ISystemFilterReference) {
|
||||
ISystemFilterReference modelObject = (ISystemFilterReference)target;
|
||||
if (modelObject.getProvider() != null) conn = ((ISubSystem)modelObject.getProvider()).getHost();
|
||||
} else if (target instanceof ISystemFilterStringReference) {
|
||||
ISystemFilterStringReference modelObject = (ISystemFilterStringReference)target;
|
||||
if (modelObject.getProvider() != null) conn = ((ISubSystem)modelObject.getProvider()).getHost();
|
||||
}
|
||||
|
||||
if (conn != null) {
|
||||
IRSESystemType systemType = RSECorePlugin.getDefault().getRegistry().getSystemType(conn.getSystemType());
|
||||
if (systemType != null) {
|
||||
IActionFilter actionFilter = (IActionFilter)ACTION_FILTER_CACHE.get(systemType);
|
||||
if (actionFilter == null) {
|
||||
Object adapter = systemType.getAdapter(IActionFilter.class);
|
||||
if (adapter instanceof IActionFilter && !adapter.equals(this)) {
|
||||
// put the association in the cache
|
||||
ACTION_FILTER_CACHE.put(systemType, adapter);
|
||||
actionFilter = (IActionFilter)adapter;
|
||||
} else if (!(adapter instanceof IActionFilter)) {
|
||||
// put the association in the cache
|
||||
ACTION_FILTER_CACHE.put(systemType, new NULL_ACTION_FILTER());
|
||||
}
|
||||
}
|
||||
if (actionFilter instanceof NULL_ACTION_FILTER) actionFilter = null;
|
||||
if (actionFilter != null) return actionFilter.testAttribute(target, name, value);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
/********************************************************************************
|
||||
* Copyright (c) 2006 IBM Corporation. All rights reserved.
|
||||
* This program and the accompanying materials are made available under the terms
|
||||
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
|
||||
* available at http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Initial Contributors:
|
||||
* The following IBM employees contributed to the Remote System Explorer
|
||||
* component that contains this file: David McKnight, Kushal Munir,
|
||||
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
|
||||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||
*
|
||||
* Contributors:
|
||||
* {Name} (company) - description of contribution.
|
||||
********************************************************************************/
|
||||
|
||||
package org.eclipse.rse.ui.view;
|
||||
|
||||
import org.eclipse.ui.IActionFilter;
|
||||
|
||||
/**
|
||||
* This interface is implemented by the adapters for every object shown in the
|
||||
* Remote System Explorer. It enables complex filtering of action and popup menu
|
||||
* extensions via the <samp><filter></samp> element, and action extensions
|
||||
* via the <samp><visibility></samp> and <samp><enablement></samp>
|
||||
* elements.
|
||||
* <p>
|
||||
* The base adapter class used for all RSE objects supports the following properties
|
||||
* by default:
|
||||
* <ol>
|
||||
* <li>name="value". The given value must match getName(target) exactly, or if ends with asterisk must match the beginning.
|
||||
* <li>name="type". The given value must match getType(target) exactly. Be careful, as this is usually translated.
|
||||
* <li>name="hasChildren". If the given value is "true", returns true if hasChildren(target) returns true. If given "false",
|
||||
* returns true if the hasChildren returns false.
|
||||
* <li>name="connection". If the given value is "true", returns true if the subsystem is connected. If given "false",
|
||||
* returns true if the subsystem is not connected.
|
||||
* <li>name="offline". If the given value is "true", returns true if the subsystem is offline. If given "false",
|
||||
* returns true if the subsystem is offline.
|
||||
* <li>name="systemType". The given value is a system type, and this returns true if this object's connection is of that
|
||||
* type. You can specify multiple values by comma-separating them, and this returns if there is a match on any them.
|
||||
* <li>name="subsystemFactoryId". The given value is a subsystem factory Id, and this returns true if this object's
|
||||
* subsystem is from that subsystem factory. For connections, returns false.
|
||||
* You can specify multiple values by comma-separating them, and this returns if there is a match on any them.
|
||||
* <li>name="subsystemFactoryCategory". The given value is a subsystem category, and this returns true if this object's
|
||||
* subsystem is from a subsystem factory of that category. For connections, returns false.
|
||||
* You can specify multiple values by comma-separating them, and this returns if there is a match on any them.
|
||||
* </ol>
|
||||
*/
|
||||
public interface ISystemViewActionFilter extends IActionFilter
|
||||
{
|
||||
|
||||
}
|
|
@ -29,6 +29,7 @@ import org.eclipse.rse.ui.ISystemContextMenuConstants;
|
|||
import org.eclipse.rse.ui.SystemMenuManager;
|
||||
import org.eclipse.rse.ui.validators.ISystemValidator;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.eclipse.ui.IActionFilter;
|
||||
import org.eclipse.ui.views.properties.IPropertyDescriptor;
|
||||
import org.eclipse.ui.views.properties.IPropertySource;
|
||||
|
||||
|
@ -55,7 +56,7 @@ import org.eclipse.ui.views.properties.IPropertySource;
|
|||
* </p>
|
||||
* @see org.eclipse.rse.ui.view.AbstractSystemViewAdapter
|
||||
*/
|
||||
public interface ISystemViewElementAdapter extends IPropertySource, ISystemDragDropAdapter, ISystemViewActionFilter
|
||||
public interface ISystemViewElementAdapter extends IPropertySource, ISystemDragDropAdapter, IActionFilter
|
||||
{
|
||||
public static final IAction[] noActions = new IAction[0];
|
||||
|
||||
|
|
|
@ -1,670 +0,0 @@
|
|||
/********************************************************************************
|
||||
* Copyright (c) 2006, 2007 IBM Corporation. All rights reserved.
|
||||
* This program and the accompanying materials are made available under the terms
|
||||
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
|
||||
* available at http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Initial Contributors:
|
||||
* The following IBM employees contributed to the Remote System Explorer
|
||||
* component that contains this file: David McKnight, Kushal Munir,
|
||||
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
|
||||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||
*
|
||||
* Contributors:
|
||||
* David Dykstal (IBM) - using new API from RSECorePlugin, RSEPreferencesManager
|
||||
* - moved SystemsPreferencesManager to a new plugin
|
||||
********************************************************************************/
|
||||
|
||||
package org.eclipse.rse.internal.model;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.rse.core.IRSESystemType;
|
||||
import org.eclipse.rse.core.RSEPreferencesManager;
|
||||
import org.eclipse.rse.core.model.IHost;
|
||||
import org.eclipse.rse.core.model.ISystemHostPool;
|
||||
import org.eclipse.rse.core.model.ISystemProfile;
|
||||
import org.eclipse.rse.core.model.RSEModelObject;
|
||||
import org.eclipse.rse.core.subsystems.IConnectorService;
|
||||
import org.eclipse.rse.core.subsystems.ISubSystem;
|
||||
import org.eclipse.rse.ui.RSEUIPlugin;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* A single connection object.
|
||||
*/
|
||||
public class Host extends RSEModelObject implements IHost
|
||||
{
|
||||
|
||||
/**
|
||||
* The default value of the '{@link #getSystemType() <em>System Type</em>}' attribute.
|
||||
* <!-- begin-user-doc -->
|
||||
* <!-- end-user-doc -->
|
||||
* @see #getSystemType()
|
||||
* @generated
|
||||
* @ordered
|
||||
*/
|
||||
protected static final String SYSTEM_TYPE_EDEFAULT = null;
|
||||
|
||||
private boolean ucId = true;
|
||||
private boolean userIdCaseSensitive = true;
|
||||
private ISystemHostPool pool;
|
||||
protected String previousUserIdKey;
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
protected String systemType = SYSTEM_TYPE_EDEFAULT;
|
||||
/**
|
||||
* The default value of the '{@link #getAliasName() <em>Alias Name</em>}' attribute.
|
||||
* <!-- begin-user-doc -->
|
||||
* <!-- end-user-doc -->
|
||||
* @see #getAliasName()
|
||||
* @generated
|
||||
* @ordered
|
||||
*/
|
||||
protected static final String ALIAS_NAME_EDEFAULT = null;
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
protected String aliasName = ALIAS_NAME_EDEFAULT;
|
||||
/**
|
||||
* The default value of the '{@link #getHostName() <em>Host Name</em>}' attribute.
|
||||
* <!-- begin-user-doc -->
|
||||
* <!-- end-user-doc -->
|
||||
* @see #getHostName()
|
||||
* @generated
|
||||
* @ordered
|
||||
*/
|
||||
protected static final String HOST_NAME_EDEFAULT = null;
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
protected String hostName = HOST_NAME_EDEFAULT;
|
||||
/**
|
||||
* The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
|
||||
* <!-- begin-user-doc -->
|
||||
* <!-- end-user-doc -->
|
||||
* @see #getDescription()
|
||||
* @generated
|
||||
* @ordered
|
||||
*/
|
||||
protected static final String DESCRIPTION_EDEFAULT = null;
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
protected String description = DESCRIPTION_EDEFAULT;
|
||||
/**
|
||||
* The default value of the '{@link #getDefaultUserId() <em>Default User Id</em>}' attribute.
|
||||
* <!-- begin-user-doc -->
|
||||
* <!-- end-user-doc -->
|
||||
* @see #getDefaultUserId()
|
||||
* @generated
|
||||
* @ordered
|
||||
*/
|
||||
protected static final String DEFAULT_USER_ID_EDEFAULT = null;
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
protected String defaultUserId = DEFAULT_USER_ID_EDEFAULT;
|
||||
/**
|
||||
* The default value of the '{@link #isPromptable() <em>Promptable</em>}' attribute.
|
||||
* <!-- begin-user-doc -->
|
||||
* <!-- end-user-doc -->
|
||||
* @see #isPromptable()
|
||||
* @generated
|
||||
* @ordered
|
||||
*/
|
||||
protected static final boolean PROMPTABLE_EDEFAULT = false;
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
protected boolean promptable = PROMPTABLE_EDEFAULT;
|
||||
/**
|
||||
* The default value of the '{@link #isOffline() <em>Offline</em>}' attribute.
|
||||
* <!-- begin-user-doc -->
|
||||
* <!-- end-user-doc -->
|
||||
* @see #isOffline()
|
||||
* @generated
|
||||
* @ordered
|
||||
*/
|
||||
protected static final boolean OFFLINE_EDEFAULT = false;
|
||||
|
||||
/**
|
||||
* The cached value of the '{@link #isOffline() <em>Offline</em>}' attribute.
|
||||
* <!-- begin-user-doc -->
|
||||
* <!-- end-user-doc -->
|
||||
* @see #isOffline()
|
||||
* @generated
|
||||
* @ordered
|
||||
*/
|
||||
protected boolean offline = OFFLINE_EDEFAULT;
|
||||
|
||||
protected ISystemProfile _profile;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
protected Host(ISystemProfile profile)
|
||||
{
|
||||
super();
|
||||
_profile = profile;
|
||||
}
|
||||
/**
|
||||
* Set the parent connection pool this is owned by.
|
||||
* Connection pools are internal management objects, one per profile.
|
||||
*/
|
||||
public void setHostPool(ISystemHostPool pool)
|
||||
{
|
||||
this.pool = pool;
|
||||
previousUserIdKey = getPreferencesKey();
|
||||
}
|
||||
/**
|
||||
* Set the parent connection pool this is owned by.
|
||||
* Connection pools are internal management objects, one per profile.
|
||||
*/
|
||||
public ISystemHostPool getHostPool()
|
||||
{
|
||||
return pool;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return all the connector services provided for this host
|
||||
*/
|
||||
public IConnectorService[] getConnectorServices()
|
||||
{
|
||||
return RSEUIPlugin.getTheSystemRegistry().getConnectorServices(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the subsystem instances under this connection.<br>
|
||||
* Just a shortcut to {@link org.eclipse.rse.core.model.ISystemRegistry#getSubSystems(IHost)}
|
||||
*/
|
||||
public ISubSystem[] getSubSystems()
|
||||
{
|
||||
return RSEUIPlugin.getTheSystemRegistry().getSubSystems(this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Private method called when this connection is being deleted, so
|
||||
* we can do any pre-death cleanup we need.
|
||||
* <p>
|
||||
* What we need to do is delete our entry in the preference store for our default userId.
|
||||
*/
|
||||
public void deletingHost()
|
||||
{
|
||||
String oldUserId = null;
|
||||
if (previousUserIdKey != null)
|
||||
oldUserId = getLocalDefaultUserId(previousUserIdKey);
|
||||
// if the userId attribute held a preference store key of the form profileName.connectionName,
|
||||
// we have to delete that key entry from the preference store and re-gen a new keyed entry with the same
|
||||
// value (the actual user id) the old keyed entry held.
|
||||
if (oldUserId != null)
|
||||
{
|
||||
RSEPreferencesManager.clearUserId(previousUserIdKey);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Private method called when this connection's profile is being rename, so
|
||||
* we can do any pre-death cleanup we need.
|
||||
* <p>
|
||||
* What we need to do is rename our entry in the preference store for our default userId.
|
||||
*/
|
||||
public void renamingSystemProfile(String oldName, String newName)
|
||||
{
|
||||
String userIdValue = null;
|
||||
if (previousUserIdKey!=null)
|
||||
userIdValue = getLocalDefaultUserId(previousUserIdKey);
|
||||
// if the userId attribute held a preference store key of the form profileName.connectionName,
|
||||
// we have to delete that key entry from the preference store and re-gen a new keyed entry with the same
|
||||
// value (the actual user id) the old keyed entry held.
|
||||
String newKey = getPreferencesKey(newName, getAliasName());
|
||||
if ((userIdValue != null) && (userIdValue.length()>0))
|
||||
{
|
||||
RSEPreferencesManager.clearUserId(previousUserIdKey);
|
||||
RSEPreferencesManager.setUserId(newKey, userIdValue); // store old value with new preference key
|
||||
}
|
||||
previousUserIdKey = newKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the system profile that owns this connection
|
||||
*/
|
||||
public ISystemProfile getSystemProfile()
|
||||
{
|
||||
return _profile;
|
||||
}
|
||||
/**
|
||||
* Return the name of system profile that owns this connection
|
||||
*/
|
||||
public String getSystemProfileName()
|
||||
{
|
||||
if (pool == null)
|
||||
return null;
|
||||
else
|
||||
{
|
||||
ISystemProfile profile = pool.getSystemProfile();
|
||||
if (profile!=null)
|
||||
return profile.getName();
|
||||
else
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Intercept of setAliasName so we can potentially rename the default-user-id key
|
||||
* for the preferences store. That key is profileName.connectionAliasName so is
|
||||
* affected when the alias name changes.
|
||||
*/
|
||||
public void setAliasName(String newName)
|
||||
{
|
||||
String userIdValue = null;
|
||||
if (previousUserIdKey != null)
|
||||
userIdValue = getLocalDefaultUserId(previousUserIdKey);
|
||||
this.setAliasNameGen(newName); // update mof-modelled attribute
|
||||
// if the userId attribute held a preference store key of the form profileName.connectionAliasName,
|
||||
// we have to delete that key entry from the preference store and re-gen a new keyed entry with the same
|
||||
// value (the actual user id) the old keyed entry held.
|
||||
String newKey = getPreferencesKey(getSystemProfileName(), newName);
|
||||
if ((userIdValue != null) && (userIdValue.length()>0))
|
||||
{
|
||||
RSEPreferencesManager.clearUserId(previousUserIdKey);
|
||||
RSEPreferencesManager.setUserId(newKey, userIdValue); // store old value with new preference key
|
||||
}
|
||||
previousUserIdKey = newKey;
|
||||
}
|
||||
/**
|
||||
* Intercept of setSystemType so we can decide if the user ID is case sensitive
|
||||
*/
|
||||
public void setSystemType(String systemType)
|
||||
{
|
||||
// defect 43219
|
||||
if (systemType != null)
|
||||
{
|
||||
boolean forceUC = systemType.equals(IRSESystemType.SYSTEMTYPE_ISERIES);
|
||||
boolean caseSensitiveUID = systemType.equals(IRSESystemType.SYSTEMTYPE_UNIX)
|
||||
|| systemType.equals(IRSESystemType.SYSTEMTYPE_LINUX)
|
||||
|| (systemType.equals(IRSESystemType.SYSTEMTYPE_LOCAL) &&
|
||||
!System.getProperty("os.name").toLowerCase().startsWith("windows")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
setForceUserIdToUpperCase(forceUC);
|
||||
setUserIdCaseSensitive(caseSensitiveUID);
|
||||
}
|
||||
this.setSystemTypeGen(systemType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Intercept of setHostName so we can force it to uppercase.
|
||||
* IPv4 host names are case insensitive. Much data is stored using the host
|
||||
* name as part of the key. Therefore, the host name is capitalized here so that
|
||||
* these comparisons work naturally.
|
||||
* However, this must be done using the US locale since IPv4 host names
|
||||
* use can be compared using this locale. See RFC1035.
|
||||
*/
|
||||
public void setHostName(String name) {
|
||||
if (name != null) {
|
||||
name = name.toUpperCase(Locale.US);
|
||||
}
|
||||
this.setHostNameGen(name);
|
||||
}
|
||||
/**
|
||||
* Intercept of setDefaultUserId so we can force it to uppercase.
|
||||
* Also, we do not store the user Id per se in the attribute, but rather
|
||||
* we store it in the preference with a key name unique to this connection.
|
||||
* We store that key name in this attribute. However, this is all transparent to
|
||||
* the caller.
|
||||
*/
|
||||
public void setDefaultUserId(String newId)
|
||||
{
|
||||
if ((newId != null) && ucId)
|
||||
newId = newId.toUpperCase();
|
||||
|
||||
if ((newId == null) || (newId.length()==0)) // a "clear" request?
|
||||
{
|
||||
clearLocalDefaultUserId();
|
||||
}
|
||||
else
|
||||
{
|
||||
String key = getPreferencesKey();
|
||||
if (key != null)
|
||||
{
|
||||
RSEPreferencesManager.setUserId(key, newId);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Returns the default UserId for this Host.
|
||||
* Note that we don't store it directly in
|
||||
* the model, since we don't want the team to share it. Rather,
|
||||
* we store the actual it in the preference store keyed by
|
||||
* (profileName.connectionName).
|
||||
* <p>
|
||||
* Further, it is possible that there is no default UserId. If so, this
|
||||
* method will go to the preference store and will try to get the default
|
||||
* UserId for this connection's system type.
|
||||
* <p>
|
||||
* This is all transparent to the caller though.
|
||||
* <p>
|
||||
* @return The value of the DefaultUserId attribute
|
||||
*/
|
||||
public String getDefaultUserId()
|
||||
{
|
||||
String uid = getLocalDefaultUserId();
|
||||
if ((uid == null) || (uid.length()==0))
|
||||
{
|
||||
uid = RSEPreferencesManager.getUserId(getSystemType()); // resolve from preferences
|
||||
if ((uid != null) && ucId)
|
||||
uid = uid.toUpperCase();
|
||||
}
|
||||
return uid;
|
||||
}
|
||||
/**
|
||||
* Return the local default user Id without resolving up the food chain.
|
||||
* @see #getDefaultUserId()
|
||||
*/
|
||||
protected static String getLocalDefaultUserId(String key)
|
||||
{
|
||||
String uid = null;
|
||||
if ((key!=null) && (key.length()>0))
|
||||
{
|
||||
uid = RSEPreferencesManager.getUserId(key); // resolve from preferences
|
||||
}
|
||||
return uid;
|
||||
}
|
||||
/**
|
||||
* Return the local default user Id without resolving up the food chain.
|
||||
* @see #getDefaultUserId()
|
||||
*/
|
||||
public String getLocalDefaultUserId()
|
||||
{
|
||||
return getLocalDefaultUserId(getPreferencesKey());
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear the local default user Id so next query will return the value from
|
||||
* the preference store.
|
||||
* <p>
|
||||
* Same as calling setDefaultUserId(null)
|
||||
* @see #setDefaultUserId(String)
|
||||
*/
|
||||
public void clearLocalDefaultUserId()
|
||||
{
|
||||
if (previousUserIdKey!=null)
|
||||
RSEPreferencesManager.clearUserId(previousUserIdKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to compute a unique name for a given subsystem instance
|
||||
*/
|
||||
protected String getPreferencesKey()
|
||||
{
|
||||
if ((getSystemProfileName()==null) || (getAliasName()==null))
|
||||
return null;
|
||||
return getPreferencesKey(getSystemProfileName());
|
||||
}
|
||||
/**
|
||||
* Helper method to compute a unique name for a given subsystem instance, given a profile name
|
||||
*/
|
||||
protected String getPreferencesKey(String profileName)
|
||||
{
|
||||
String connectionName = getAliasName();
|
||||
if (connectionName == null)
|
||||
return null;
|
||||
return getPreferencesKey(profileName, connectionName);
|
||||
}
|
||||
/**
|
||||
* Helper method to compute a unique name for a given subsystem instance, given a profile name and connection name
|
||||
*/
|
||||
protected String getPreferencesKey(String profileName, String connectionName)
|
||||
{
|
||||
return profileName + "." + connectionName; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Call this with false to turn off the default behaviour of forcing the default userId to uppercase.
|
||||
*/
|
||||
public void setForceUserIdToUpperCase(boolean force)
|
||||
{
|
||||
this.ucId = force;
|
||||
}
|
||||
/**
|
||||
* Call this to turn off the default behaviour of considering case when comparing userIds
|
||||
*/
|
||||
public void setUserIdCaseSensitive(boolean caseSensitive)
|
||||
{
|
||||
this.userIdCaseSensitive = caseSensitive;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this to query whether the default userId is to be uppercased.
|
||||
*/
|
||||
public boolean getForceUserIdToUpperCase()
|
||||
{
|
||||
return ucId;
|
||||
}
|
||||
/**
|
||||
* Call this to query whether the default userId is case sensitive
|
||||
*/
|
||||
public boolean getUserIdCaseSensitive()
|
||||
{
|
||||
return userIdCaseSensitive;
|
||||
}
|
||||
/**
|
||||
* Call this to compare two userIds taking case sensitivity
|
||||
*/
|
||||
public boolean compareUserIds(String userId1, String userId2)
|
||||
{
|
||||
if (userId1 == null)
|
||||
userId1 = ""; //$NON-NLS-1$
|
||||
if (userId2 == null)
|
||||
userId2 = ""; //$NON-NLS-1$
|
||||
if (userIdCaseSensitive)
|
||||
return userId1.equals(userId2);
|
||||
else
|
||||
return userId1.equalsIgnoreCase(userId2);
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
if (getAliasName() == null)
|
||||
return this.toStringGen();
|
||||
else
|
||||
return getAliasName();
|
||||
}
|
||||
/**
|
||||
* This is the method required by the IAdaptable interface.
|
||||
* Given an adapter class type, return an object castable to the type, or
|
||||
* null if this is not possible.
|
||||
*/
|
||||
public Object getAdapter(Class adapterType)
|
||||
{
|
||||
return Platform.getAdapterManager().getAdapter(this, adapterType);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
*/
|
||||
public String getSystemType()
|
||||
{
|
||||
return systemType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the alias name for this host
|
||||
*/
|
||||
public String getName()
|
||||
{
|
||||
return getAliasName();
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
* The unique key for this object. Unique per connection pool
|
||||
*/
|
||||
public String getAliasName()
|
||||
{
|
||||
return aliasName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
*/
|
||||
public String getHostName()
|
||||
{
|
||||
return hostName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
*/
|
||||
public String getDescription()
|
||||
{
|
||||
return description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setDescription(String newDescription)
|
||||
{
|
||||
setDirty(!compareStrings(description, newDescription));
|
||||
description = newDescription;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
*/
|
||||
public boolean isPromptable()
|
||||
{
|
||||
return promptable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setPromptable(boolean newPromptable)
|
||||
{
|
||||
setDirty(promptable != newPromptable);
|
||||
promptable = newPromptable;
|
||||
}
|
||||
|
||||
/**
|
||||
* <!-- begin-user-doc -->
|
||||
* Query if this connection is offline or not. It is up to each subsystem to honor this
|
||||
* flag.
|
||||
* <!-- end-user-doc -->
|
||||
* @generated
|
||||
*/
|
||||
public boolean isOffline()
|
||||
{
|
||||
return offline;
|
||||
}
|
||||
|
||||
/**
|
||||
* <!-- begin-user-doc -->
|
||||
* Specify if this connection is offline or not. It is up to each subsystem to honor this
|
||||
* flag.
|
||||
* <!-- end-user-doc -->
|
||||
* @generated
|
||||
*/
|
||||
public void setOffline(boolean newOffline)
|
||||
{
|
||||
setDirty(offline != newOffline);
|
||||
offline = newOffline;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setSystemTypeGen(String newSystemType)
|
||||
{
|
||||
setDirty(!compareStrings(systemType, newSystemType));
|
||||
systemType = newSystemType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setAliasNameGen(String newAliasName)
|
||||
{
|
||||
setDirty(!compareStrings(aliasName, newAliasName));
|
||||
aliasName = newAliasName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setHostNameGen(String newHostName)
|
||||
{
|
||||
setDirty(!compareStrings(hostName, newHostName));
|
||||
hostName = newHostName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
*/
|
||||
public String getDefaultUserIdGen()
|
||||
{
|
||||
return defaultUserId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setDefaultUserIdGen(String newDefaultUserId)
|
||||
{
|
||||
setDirty(!compareStrings(defaultUserId, newDefaultUserId));
|
||||
defaultUserId = newDefaultUserId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public String toStringGen()
|
||||
{
|
||||
StringBuffer result = new StringBuffer(super.toString());
|
||||
result.append(" (systemType: "); //$NON-NLS-1$
|
||||
result.append(systemType);
|
||||
result.append(", aliasName: "); //$NON-NLS-1$
|
||||
result.append(aliasName);
|
||||
result.append(", hostName: "); //$NON-NLS-1$
|
||||
result.append(hostName);
|
||||
result.append(", description: "); //$NON-NLS-1$
|
||||
result.append(description);
|
||||
result.append(", defaultUserId: "); //$NON-NLS-1$
|
||||
result.append(defaultUserId);
|
||||
result.append(", promptable: "); //$NON-NLS-1$
|
||||
result.append(promptable);
|
||||
result.append(", offline: "); //$NON-NLS-1$
|
||||
result.append(offline);
|
||||
result.append(')');
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.rse.core.model.RSEModelObject#setDirty(boolean)
|
||||
*/
|
||||
public void setDirty(boolean flag) {
|
||||
super.setDirty(flag);
|
||||
ISystemHostPool myPool = getHostPool();
|
||||
if (myPool != null && flag) {
|
||||
myPool.setDirty(true);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean commit()
|
||||
{
|
||||
return RSEUIPlugin.getThePersistenceManager().commit(this);
|
||||
}
|
||||
|
||||
}
|
|
@ -21,6 +21,7 @@ import java.util.Hashtable;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.rse.core.IRSESystemType;
|
||||
import org.eclipse.rse.core.IRSEUserIdConstants;
|
||||
import org.eclipse.rse.core.RSECorePlugin;
|
||||
import org.eclipse.rse.core.RSEPreferencesManager;
|
||||
|
@ -29,6 +30,8 @@ import org.eclipse.rse.core.model.ISystemHostPool;
|
|||
import org.eclipse.rse.core.model.ISystemProfile;
|
||||
import org.eclipse.rse.core.model.RSEModelObject;
|
||||
import org.eclipse.rse.core.model.RSEModelResources;
|
||||
import org.eclipse.rse.model.Host;
|
||||
import org.eclipse.rse.ui.RSESystemTypeAdapter;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -205,7 +208,19 @@ public class SystemHostPool extends RSEModelObject implements ISystemHostPool
|
|||
try
|
||||
{
|
||||
ISystemProfile profile = getSystemProfile();
|
||||
conn = new Host(profile);
|
||||
|
||||
// delegate the creation of the host object instance to the system type provider!!!
|
||||
IRSESystemType systemTypeObject = RSECorePlugin.getDefault().getRegistry().getSystemType(systemType);
|
||||
if (systemTypeObject != null) {
|
||||
Object adapter = systemTypeObject.getAdapter(IRSESystemType.class);
|
||||
if (adapter instanceof RSESystemTypeAdapter) {
|
||||
conn = ((RSESystemTypeAdapter)adapter).createNewHostInstance(profile);
|
||||
}
|
||||
}
|
||||
// Fallback to create host object instance here if failed by system type provider.
|
||||
if (conn == null) conn = new Host(profile);
|
||||
assert conn != null;
|
||||
|
||||
addHost(conn); // only record internally if saved successfully
|
||||
conn.setHostPool(this);
|
||||
conn.setAliasName(aliasName);
|
||||
|
|
|
@ -0,0 +1,549 @@
|
|||
/********************************************************************************
|
||||
* Copyright (c) 2006, 2007 IBM Corporation and others. All rights reserved.
|
||||
* This program and the accompanying materials are made available under the terms
|
||||
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
|
||||
* available at http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Initial Contributors:
|
||||
* The following IBM employees contributed to the Remote System Explorer
|
||||
* component that contains this file: David McKnight, Kushal Munir,
|
||||
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
|
||||
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
|
||||
*
|
||||
* Contributors:
|
||||
* David Dykstal (IBM) - using new API from RSECorePlugin, RSEPreferencesManager
|
||||
* - moved SystemsPreferencesManager to a new plugin
|
||||
* Uwe Stieber (Wind River) - Dynamic system type provider extensions.
|
||||
* - Moved to package org.eclipse.rse.model for being extendable.
|
||||
********************************************************************************/
|
||||
|
||||
package org.eclipse.rse.model;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.rse.core.IRSESystemType;
|
||||
import org.eclipse.rse.core.RSEPreferencesManager;
|
||||
import org.eclipse.rse.core.model.IHost;
|
||||
import org.eclipse.rse.core.model.ISystemHostPool;
|
||||
import org.eclipse.rse.core.model.ISystemProfile;
|
||||
import org.eclipse.rse.core.model.RSEModelObject;
|
||||
import org.eclipse.rse.core.subsystems.IConnectorService;
|
||||
import org.eclipse.rse.core.subsystems.ISubSystem;
|
||||
import org.eclipse.rse.ui.RSEUIPlugin;
|
||||
|
||||
/**
|
||||
* Default implementation of the <code>IHost</code> interface.
|
||||
* <p>
|
||||
* Dynamic system type providers may extend this implementation
|
||||
* if needed.
|
||||
*/
|
||||
public class Host extends RSEModelObject implements IHost {
|
||||
|
||||
|
||||
private boolean ucId = true;
|
||||
private boolean userIdCaseSensitive = true;
|
||||
private ISystemHostPool pool;
|
||||
protected String previousUserIdKey;
|
||||
|
||||
/**
|
||||
* The system type which is associated to this <code>IHost</code> object.
|
||||
*/
|
||||
private String systemType = null;
|
||||
|
||||
/**
|
||||
* The alias name of this <code>IHost</code> object.
|
||||
*/
|
||||
private String aliasName = null;
|
||||
|
||||
/**
|
||||
* The host name of the target which is associated to this <code>IHost</code> object.
|
||||
*/
|
||||
private String hostName = null;
|
||||
|
||||
/**
|
||||
* The description of this <code>IHost</code> object.
|
||||
*/
|
||||
private String description = null;
|
||||
|
||||
/**
|
||||
* The default user id to use to login to the target host.
|
||||
*/
|
||||
private String defaultUserId = null;
|
||||
|
||||
/**
|
||||
* Prompt for user id and password.
|
||||
*/
|
||||
private boolean promptable = false;
|
||||
|
||||
/**
|
||||
* Offline mode.
|
||||
*/
|
||||
private boolean offline = false;
|
||||
|
||||
/**
|
||||
* The system profile associated with this <code>IHost</code> object.
|
||||
*/
|
||||
private ISystemProfile _profile;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public Host(ISystemProfile profile) {
|
||||
super();
|
||||
_profile = profile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the parent connection pool this is owned by.
|
||||
* Connection pools are internal management objects, one per profile.
|
||||
*/
|
||||
public void setHostPool(ISystemHostPool pool) {
|
||||
this.pool = pool;
|
||||
previousUserIdKey = getPreferencesKey();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the parent connection pool this is owned by.
|
||||
* Connection pools are internal management objects, one per profile.
|
||||
*/
|
||||
public ISystemHostPool getHostPool() {
|
||||
return pool;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return all the connector services provided for this host
|
||||
*/
|
||||
public IConnectorService[] getConnectorServices() {
|
||||
return RSEUIPlugin.getTheSystemRegistry().getConnectorServices(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the subsystem instances under this connection.<br>
|
||||
* Just a shortcut to {@link org.eclipse.rse.core.model.ISystemRegistry#getSubSystems(IHost)}
|
||||
*/
|
||||
public ISubSystem[] getSubSystems() {
|
||||
return RSEUIPlugin.getTheSystemRegistry().getSubSystems(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Private method called when this connection is being deleted, so
|
||||
* we can do any pre-death cleanup we need.
|
||||
* <p>
|
||||
* What we need to do is delete our entry in the preference store for our default userId.
|
||||
*/
|
||||
public void deletingHost() {
|
||||
String oldUserId = null;
|
||||
if (previousUserIdKey != null) oldUserId = getLocalDefaultUserId(previousUserIdKey);
|
||||
// if the userId attribute held a preference store key of the form profileName.connectionName,
|
||||
// we have to delete that key entry from the preference store and re-gen a new keyed entry with the same
|
||||
// value (the actual user id) the old keyed entry held.
|
||||
if (oldUserId != null) {
|
||||
RSEPreferencesManager.clearUserId(previousUserIdKey);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Private method called when this connection's profile is being rename, so
|
||||
* we can do any pre-death cleanup we need.
|
||||
* <p>
|
||||
* What we need to do is rename our entry in the preference store for our default userId.
|
||||
*/
|
||||
public void renamingSystemProfile(String oldName, String newName) {
|
||||
String userIdValue = null;
|
||||
if (previousUserIdKey != null) userIdValue = getLocalDefaultUserId(previousUserIdKey);
|
||||
// if the userId attribute held a preference store key of the form profileName.connectionName,
|
||||
// we have to delete that key entry from the preference store and re-gen a new keyed entry with the same
|
||||
// value (the actual user id) the old keyed entry held.
|
||||
String newKey = getPreferencesKey(newName, getAliasName());
|
||||
if ((userIdValue != null) && (userIdValue.length() > 0)) {
|
||||
RSEPreferencesManager.clearUserId(previousUserIdKey);
|
||||
RSEPreferencesManager.setUserId(newKey, userIdValue); // store old value with new preference key
|
||||
}
|
||||
previousUserIdKey = newKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the system profile that owns this connection
|
||||
*/
|
||||
public ISystemProfile getSystemProfile() {
|
||||
return _profile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the name of system profile that owns this connection
|
||||
*/
|
||||
public String getSystemProfileName() {
|
||||
if (pool == null)
|
||||
return null;
|
||||
else {
|
||||
ISystemProfile profile = pool.getSystemProfile();
|
||||
if (profile != null)
|
||||
return profile.getName();
|
||||
else return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Intercept of setAliasName so we can potentially rename the default-user-id key
|
||||
* for the preferences store. That key is profileName.connectionAliasName so is
|
||||
* affected when the alias name changes.
|
||||
*/
|
||||
public void setAliasName(String newName) {
|
||||
String userIdValue = null;
|
||||
if (previousUserIdKey != null) userIdValue = getLocalDefaultUserId(previousUserIdKey);
|
||||
this.setAliasNameGen(newName); // update mof-modelled attribute
|
||||
// if the userId attribute held a preference store key of the form profileName.connectionAliasName,
|
||||
// we have to delete that key entry from the preference store and re-gen a new keyed entry with the same
|
||||
// value (the actual user id) the old keyed entry held.
|
||||
String newKey = getPreferencesKey(getSystemProfileName(), newName);
|
||||
if ((userIdValue != null) && (userIdValue.length() > 0)) {
|
||||
RSEPreferencesManager.clearUserId(previousUserIdKey);
|
||||
RSEPreferencesManager.setUserId(newKey, userIdValue); // store old value with new preference key
|
||||
}
|
||||
previousUserIdKey = newKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* Intercept of setSystemType so we can decide if the user ID is case sensitive
|
||||
*/
|
||||
public void setSystemType(String systemType) {
|
||||
// defect 43219
|
||||
if (systemType != null) {
|
||||
boolean forceUC = systemType.equals(IRSESystemType.SYSTEMTYPE_ISERIES);
|
||||
boolean caseSensitiveUID = systemType.equals(IRSESystemType.SYSTEMTYPE_UNIX) || systemType.equals(IRSESystemType.SYSTEMTYPE_LINUX)
|
||||
|| (systemType.equals(IRSESystemType.SYSTEMTYPE_LOCAL) && !System.getProperty("os.name").toLowerCase().startsWith("windows")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
setForceUserIdToUpperCase(forceUC);
|
||||
setUserIdCaseSensitive(caseSensitiveUID);
|
||||
}
|
||||
this.setSystemTypeGen(systemType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Intercept of setHostName so we can force it to uppercase.
|
||||
* IPv4 host names are case insensitive. Much data is stored using the host
|
||||
* name as part of the key. Therefore, the host name is capitalized here so that
|
||||
* these comparisons work naturally.
|
||||
* However, this must be done using the US locale since IPv4 host names
|
||||
* use can be compared using this locale. See RFC1035.
|
||||
*/
|
||||
public void setHostName(String name) {
|
||||
if (name != null) {
|
||||
name = name.toUpperCase(Locale.US);
|
||||
}
|
||||
this.setHostNameGen(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Intercept of setDefaultUserId so we can force it to uppercase.
|
||||
* Also, we do not store the user Id per se in the attribute, but rather
|
||||
* we store it in the preference with a key name unique to this connection.
|
||||
* We store that key name in this attribute. However, this is all transparent to
|
||||
* the caller.
|
||||
*/
|
||||
public void setDefaultUserId(String newId) {
|
||||
if ((newId != null) && ucId) newId = newId.toUpperCase();
|
||||
|
||||
if ((newId == null) || (newId.length() == 0)) // a "clear" request?
|
||||
{
|
||||
clearLocalDefaultUserId();
|
||||
}
|
||||
else {
|
||||
String key = getPreferencesKey();
|
||||
if (key != null) {
|
||||
RSEPreferencesManager.setUserId(key, newId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default UserId for this Host.
|
||||
* Note that we don't store it directly in
|
||||
* the model, since we don't want the team to share it. Rather,
|
||||
* we store the actual it in the preference store keyed by
|
||||
* (profileName.connectionName).
|
||||
* <p>
|
||||
* Further, it is possible that there is no default UserId. If so, this
|
||||
* method will go to the preference store and will try to get the default
|
||||
* UserId for this connection's system type.
|
||||
* <p>
|
||||
* This is all transparent to the caller though.
|
||||
* <p>
|
||||
* @return The value of the DefaultUserId attribute
|
||||
*/
|
||||
public String getDefaultUserId() {
|
||||
String uid = getLocalDefaultUserId();
|
||||
if ((uid == null) || (uid.length() == 0)) {
|
||||
uid = RSEPreferencesManager.getUserId(getSystemType()); // resolve from preferences
|
||||
if ((uid != null) && ucId) uid = uid.toUpperCase();
|
||||
}
|
||||
return uid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the local default user Id without resolving up the food chain.
|
||||
* @see #getDefaultUserId()
|
||||
*/
|
||||
protected static String getLocalDefaultUserId(String key) {
|
||||
String uid = null;
|
||||
if ((key != null) && (key.length() > 0)) {
|
||||
uid = RSEPreferencesManager.getUserId(key); // resolve from preferences
|
||||
}
|
||||
return uid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the local default user Id without resolving up the food chain.
|
||||
* @see #getDefaultUserId()
|
||||
*/
|
||||
public String getLocalDefaultUserId() {
|
||||
return getLocalDefaultUserId(getPreferencesKey());
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear the local default user Id so next query will return the value from
|
||||
* the preference store.
|
||||
* <p>
|
||||
* Same as calling setDefaultUserId(null)
|
||||
* @see #setDefaultUserId(String)
|
||||
*/
|
||||
public void clearLocalDefaultUserId() {
|
||||
if (previousUserIdKey != null) RSEPreferencesManager.clearUserId(previousUserIdKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to compute a unique name for a given subsystem instance
|
||||
*/
|
||||
protected String getPreferencesKey() {
|
||||
if ((getSystemProfileName() == null) || (getAliasName() == null)) return null;
|
||||
return getPreferencesKey(getSystemProfileName());
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to compute a unique name for a given subsystem instance, given a profile name
|
||||
*/
|
||||
protected String getPreferencesKey(String profileName) {
|
||||
String connectionName = getAliasName();
|
||||
if (connectionName == null) return null;
|
||||
return getPreferencesKey(profileName, connectionName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to compute a unique name for a given subsystem instance, given a profile name and connection name
|
||||
*/
|
||||
protected String getPreferencesKey(String profileName, String connectionName) {
|
||||
return profileName + "." + connectionName; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this with false to turn off the default behaviour of forcing the default userId to uppercase.
|
||||
*/
|
||||
public void setForceUserIdToUpperCase(boolean force) {
|
||||
this.ucId = force;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this to turn off the default behaviour of considering case when comparing userIds
|
||||
*/
|
||||
public void setUserIdCaseSensitive(boolean caseSensitive) {
|
||||
this.userIdCaseSensitive = caseSensitive;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this to query whether the default userId is to be uppercased.
|
||||
*/
|
||||
public boolean getForceUserIdToUpperCase() {
|
||||
return ucId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this to query whether the default userId is case sensitive
|
||||
*/
|
||||
public boolean getUserIdCaseSensitive() {
|
||||
return userIdCaseSensitive;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this to compare two userIds taking case sensitivity
|
||||
*/
|
||||
public boolean compareUserIds(String userId1, String userId2) {
|
||||
if (userId1 == null) userId1 = ""; //$NON-NLS-1$
|
||||
if (userId2 == null) userId2 = ""; //$NON-NLS-1$
|
||||
if (userIdCaseSensitive)
|
||||
return userId1.equals(userId2);
|
||||
else return userId1.equalsIgnoreCase(userId2);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
if (getAliasName() == null) {
|
||||
StringBuffer result = new StringBuffer(super.toString());
|
||||
result.append(" (systemType: "); //$NON-NLS-1$
|
||||
result.append(systemType);
|
||||
result.append(", aliasName: "); //$NON-NLS-1$
|
||||
result.append(aliasName);
|
||||
result.append(", hostName: "); //$NON-NLS-1$
|
||||
result.append(hostName);
|
||||
result.append(", description: "); //$NON-NLS-1$
|
||||
result.append(description);
|
||||
result.append(", defaultUserId: "); //$NON-NLS-1$
|
||||
result.append(defaultUserId);
|
||||
result.append(", promptable: "); //$NON-NLS-1$
|
||||
result.append(promptable);
|
||||
result.append(", offline: "); //$NON-NLS-1$
|
||||
result.append(offline);
|
||||
result.append(')');
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
return getAliasName();
|
||||
}
|
||||
|
||||
/**
|
||||
* This is the method required by the IAdaptable interface.
|
||||
* Given an adapter class type, return an object castable to the type, or
|
||||
* null if this is not possible.
|
||||
*/
|
||||
public Object getAdapter(Class adapterType) {
|
||||
return Platform.getAdapterManager().getAdapter(this, adapterType);
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
*/
|
||||
public String getSystemType() {
|
||||
return systemType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the alias name for this host
|
||||
*/
|
||||
public String getName() {
|
||||
return getAliasName();
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
* The unique key for this object. Unique per connection pool
|
||||
*/
|
||||
public String getAliasName() {
|
||||
return aliasName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
*/
|
||||
public String getHostName() {
|
||||
return hostName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
*/
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setDescription(String newDescription) {
|
||||
setDirty(!compareStrings(description, newDescription));
|
||||
description = newDescription;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
*/
|
||||
public boolean isPromptable() {
|
||||
return promptable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setPromptable(boolean newPromptable) {
|
||||
setDirty(promptable != newPromptable);
|
||||
promptable = newPromptable;
|
||||
}
|
||||
|
||||
/**
|
||||
* <!-- begin-user-doc -->
|
||||
* Query if this connection is offline or not. It is up to each subsystem to honor this
|
||||
* flag.
|
||||
* <!-- end-user-doc -->
|
||||
* @generated
|
||||
*/
|
||||
public boolean isOffline() {
|
||||
return offline;
|
||||
}
|
||||
|
||||
/**
|
||||
* <!-- begin-user-doc -->
|
||||
* Specify if this connection is offline or not. It is up to each subsystem to honor this
|
||||
* flag.
|
||||
* <!-- end-user-doc -->
|
||||
* @generated
|
||||
*/
|
||||
public void setOffline(boolean newOffline) {
|
||||
setDirty(offline != newOffline);
|
||||
offline = newOffline;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setSystemTypeGen(String newSystemType) {
|
||||
setDirty(!compareStrings(systemType, newSystemType));
|
||||
systemType = newSystemType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setAliasNameGen(String newAliasName) {
|
||||
setDirty(!compareStrings(aliasName, newAliasName));
|
||||
aliasName = newAliasName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setHostNameGen(String newHostName) {
|
||||
setDirty(!compareStrings(hostName, newHostName));
|
||||
hostName = newHostName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation
|
||||
*/
|
||||
public String getDefaultUserIdGen() {
|
||||
return defaultUserId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @generated This field/method will be replaced during code generation.
|
||||
*/
|
||||
public void setDefaultUserIdGen(String newDefaultUserId) {
|
||||
setDirty(!compareStrings(defaultUserId, newDefaultUserId));
|
||||
defaultUserId = newDefaultUserId;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.rse.core.model.RSEModelObject#setDirty(boolean)
|
||||
*/
|
||||
public void setDirty(boolean flag) {
|
||||
super.setDirty(flag);
|
||||
ISystemHostPool myPool = getHostPool();
|
||||
if (myPool != null && flag) {
|
||||
myPool.setDirty(true);
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.rse.core.model.IRSEPersistableContainer#commit()
|
||||
*/
|
||||
public boolean commit() {
|
||||
return RSEUIPlugin.getThePersistenceManager().commit(this);
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue