diff options
211 files changed, 4976 insertions, 5947 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.runtime.model/src/org/eclipse/tcf/te/runtime/model/ModelNode.java b/target_explorer/plugins/org.eclipse.tcf.te.runtime.model/src/org/eclipse/tcf/te/runtime/model/ModelNode.java index 5e025f0d6..34ba099db 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.runtime.model/src/org/eclipse/tcf/te/runtime/model/ModelNode.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.runtime.model/src/org/eclipse/tcf/te/runtime/model/ModelNode.java @@ -120,7 +120,7 @@ public class ModelNode extends PropertiesContainer implements IModelNode, IModel */ @Override public boolean isVisible() { - return getBooleanProperty(PROPERTY_IS_VISIBLE); + return getBooleanProperty(PROPERTY_VISIBLE); } /* (non-Javadoc) diff --git a/target_explorer/plugins/org.eclipse.tcf.te.runtime.model/src/org/eclipse/tcf/te/runtime/model/interfaces/IModelNode.java b/target_explorer/plugins/org.eclipse.tcf.te.runtime.model/src/org/eclipse/tcf/te/runtime/model/interfaces/IModelNode.java index 0fb549d40..fac1e816f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.runtime.model/src/org/eclipse/tcf/te/runtime/model/interfaces/IModelNode.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.runtime.model/src/org/eclipse/tcf/te/runtime/model/interfaces/IModelNode.java @@ -28,24 +28,24 @@ public interface IModelNode extends IPropertiesContainer, ISchedulingRule { * It can be identical to the node object instance UUID, but * can be any other string or might be not even set. */ - public static final String PROPERTY_ID = "id"; //$NON-NLS-1$ + public static final String PROPERTY_ID = "id" + PERSISTENT_PROPERTY; //$NON-NLS-1$ /** * Property: Model node name. May be used to represent the node * in UI widgets. */ - public static final String PROPERTY_NAME = "name"; //$NON-NLS-1$ + public static final String PROPERTY_NAME = "name" + PERSISTENT_PROPERTY; //$NON-NLS-1$ /** * Property: Model node visible state. May be used to hide the node * in UI widgets like lists, tables or trees. */ - public static final String PROPERTY_IS_VISIBLE = "isVisible"; //$NON-NLS-1$ + public static final String PROPERTY_VISIBLE = "visible" + PERSISTENT_PROPERTY; //$NON-NLS-1$ /** * Property: Type. May be used to group nodes or set an node type id. */ - public static final String PROPERTY_TYPE = "type"; //$NON-NLS-1$ + public static final String PROPERTY_TYPE = "type" + PERSISTENT_PROPERTY; //$NON-NLS-1$ /** * Property: Type label. May be used to represent the group or node diff --git a/target_explorer/plugins/org.eclipse.tcf.te.runtime/src/org/eclipse/tcf/te/runtime/interfaces/properties/IPropertiesContainer.java b/target_explorer/plugins/org.eclipse.tcf.te.runtime/src/org/eclipse/tcf/te/runtime/interfaces/properties/IPropertiesContainer.java index 53d902eb4..de8fe96b6 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.runtime/src/org/eclipse/tcf/te/runtime/interfaces/properties/IPropertiesContainer.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.runtime/src/org/eclipse/tcf/te/runtime/interfaces/properties/IPropertiesContainer.java @@ -20,6 +20,17 @@ import org.eclipse.core.runtime.IAdaptable; public interface IPropertiesContainer extends IAdaptable { /** + * If a property key ends with ".silent", no change events will be fired. + */ + public static final String SILENT_PROPERTY = ".silent"; //$NON-NLS-1$ + + /** + * If a property key ends with ".persistent", it should be persisted when the properties container is saved. + * This string should always be used at the end of all other property key extensions! + */ + public static final String PERSISTENT_PROPERTY = ""; //$NON-NLS-1$ + + /** * Returns the unique identified of the properties container. * * @return The unique identifier. diff --git a/target_explorer/plugins/org.eclipse.tcf.te.runtime/src/org/eclipse/tcf/te/runtime/properties/PropertiesContainer.java b/target_explorer/plugins/org.eclipse.tcf.te.runtime/src/org/eclipse/tcf/te/runtime/properties/PropertiesContainer.java index 283458491..20b00f4c5 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.runtime/src/org/eclipse/tcf/te/runtime/properties/PropertiesContainer.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.runtime/src/org/eclipse/tcf/te/runtime/properties/PropertiesContainer.java @@ -222,7 +222,7 @@ public class PropertiesContainer extends PlatformObject implements IPropertiesCo protected boolean dropEvent(Object source, String key, Object oldValue, Object newValue) { Assert.isNotNull(source); Assert.isNotNull(key); - return !changeEventsEnabled || key.endsWith(".silent"); //$NON-NLS-1$ + return !changeEventsEnabled || key.endsWith(SILENT_PROPERTY); } /** diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/plugin.xml index 21f8b39c8..4bd6a3acf 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/plugin.xml @@ -1,63 +1,63 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-<!-- Persistence delegate contributions -->
- <extension
- point="org.eclipse.tcf.te.runtime.persistence.delegates">
- <delegate
- class="org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.PersistenceManagerDelegate"
- id="org.eclipse.tcf.te.tcf.filesystem.core.map">
- </delegate>
- </extension>
-
-<!-- Persistence delegate binding contributions -->
- <extension
- point="org.eclipse.tcf.te.runtime.persistence.bindings">
- <binding
- delegateId="org.eclipse.tcf.te.tcf.filesystem.core.map"
- id="org.eclipse.tcf.te.tcf.filesystem.core.map.binding">
- <enablement>
- <with variable="container">
- <instanceof
- value="java.net.URI">
- </instanceof>
- </with>
- <with variable="context">
- <instanceof
- value="org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.PersistenceManager">
- </instanceof>
- </with>
- </enablement>
- </binding>
- </extension>
-
-<!-- Property tester contributions -->
- <extension point="org.eclipse.core.expressions.propertyTesters">
- <propertyTester
- class="org.eclipse.tcf.te.tcf.filesystem.core.internal.testers.FSTreeNodePropertyTester"
- id="org.eclipse.tcf.te.tcf.filesystem.propertytester.treenode"
- namespace="org.eclipse.tcf.te.tcf.filesystem.propertytester.treenode"
- properties="isFile,isDirectory,isBinaryFile,isReadable,isWritable,isExecutable,isRoot,isReadOnly,isHidden,isWindows,testParent,getCacheState,isSystemRoot"
- type="org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode">
- </propertyTester>
- <propertyTester
- class="org.eclipse.tcf.te.tcf.filesystem.core.internal.testers.TargetPropertyTester"
- id="org.eclipse.tcf.te.tcf.filesystem.propertytester.peer"
- namespace="org.eclipse.tcf.te.tcf.filesystem.propertytester.peer"
- properties="isWindows"
- type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel">
- </propertyTester>
- </extension>
-
-<!-- Launch Step contributions -->
- <extension point="org.eclipse.tcf.te.runtime.stepper.steps">
- <step
- id="org.eclipse.tcf.te.tcf.filesystem.core.fileTransferStep"
- class="org.eclipse.tcf.te.tcf.filesystem.core.steps.FileTransferStep"
- label="%FileTransferStep.name">
- <requires id="org.eclipse.tcf.te.tcf.core.openChannelStep"/>
- </step>
- </extension>
-
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<plugin> + +<!-- Persistence delegate contributions --> + <extension + point="org.eclipse.tcf.te.runtime.persistence.delegates"> + <delegate + class="org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.PersistenceManagerDelegate" + id="org.eclipse.tcf.te.tcf.filesystem.core.map"> + </delegate> + </extension> + +<!-- Persistence delegate binding contributions --> + <extension + point="org.eclipse.tcf.te.runtime.persistence.bindings"> + <binding + delegateId="org.eclipse.tcf.te.tcf.filesystem.core.map" + id="org.eclipse.tcf.te.tcf.filesystem.core.map.binding"> + <enablement> + <with variable="container"> + <instanceof + value="java.net.URI"> + </instanceof> + </with> + <with variable="context"> + <instanceof + value="org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.PersistenceManager"> + </instanceof> + </with> + </enablement> + </binding> + </extension> + +<!-- Property tester contributions --> + <extension point="org.eclipse.core.expressions.propertyTesters"> + <propertyTester + class="org.eclipse.tcf.te.tcf.filesystem.core.internal.testers.FSTreeNodePropertyTester" + id="org.eclipse.tcf.te.tcf.filesystem.propertytester.treenode" + namespace="org.eclipse.tcf.te.tcf.filesystem.propertytester.treenode" + properties="isFile,isDirectory,isBinaryFile,isReadable,isWritable,isExecutable,isRoot,isReadOnly,isHidden,isWindows,testParent,getCacheState,isSystemRoot" + type="org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode"> + </propertyTester> + <propertyTester + class="org.eclipse.tcf.te.tcf.filesystem.core.internal.testers.TargetPropertyTester" + id="org.eclipse.tcf.te.tcf.filesystem.propertytester.peer" + namespace="org.eclipse.tcf.te.tcf.filesystem.propertytester.peer" + properties="isWindows" + type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> + </propertyTester> + </extension> + +<!-- Launch Step contributions --> + <extension point="org.eclipse.tcf.te.runtime.stepper.steps"> + <step + id="org.eclipse.tcf.te.tcf.filesystem.core.fileTransferStep" + class="org.eclipse.tcf.te.tcf.filesystem.core.steps.FileTransferStep" + label="%FileTransferStep.name"> + <requires id="org.eclipse.tcf.te.tcf.core.openChannelStep"/> + </step> + </extension> + +</plugin> diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/operations/OpParsePath.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/operations/OpParsePath.java index 88ad44f73..27b79ea54 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/operations/OpParsePath.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/operations/OpParsePath.java @@ -26,8 +26,8 @@ import org.eclipse.tcf.te.tcf.filesystem.core.internal.testers.TargetPropertyTes import org.eclipse.tcf.te.tcf.filesystem.core.internal.utils.CacheManager; import org.eclipse.tcf.te.tcf.filesystem.core.model.FSModel; import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; /** @@ -35,7 +35,7 @@ import org.eclipse.tcf.te.tcf.locator.model.Model; */ public class OpParsePath extends Operation { // The peer on which the file is located. - IPeerModel peer; + IPeerNode peer; // The path on the target. String path; // The parsing result. @@ -47,7 +47,7 @@ public class OpParsePath extends Operation { * @param peer The target peer. * @param path The path to be parsed. */ - public OpParsePath(IPeerModel peer, String path) { + public OpParsePath(IPeerNode peer, String path) { this.peer = peer; this.path = path; } @@ -66,21 +66,21 @@ public class OpParsePath extends Operation { String peerId = filePath.substring(0, slash); peerId = peerId.replace(CacheManager.PATH_ESCAPE_CHAR, ':'); - final AtomicReference<IPeerModel> peerModel = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> peerNode = new AtomicReference<IPeerNode>(); final String finPeerId = peerId; Runnable runnable = new Runnable() { @Override public void run() { - peerModel.set(Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelById(finPeerId)); + peerNode.set(Model.getModel().getService(IPeerModelLookupService.class).lkupPeerModelById(finPeerId)); } }; if (Protocol.isDispatchThread()) runnable.run(); else Protocol.invokeAndWait(runnable); - this.peer = peerModel.get(); + this.peer = peerNode.get(); if (peer != null) { boolean hostWindows = Host.isWindowsHost(); boolean windows = TargetPropertyTester.isWindows(peer); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/operations/OpUser.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/operations/OpUser.java index 1a43504b4..316eb1fcd 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/operations/OpUser.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/operations/OpUser.java @@ -1,167 +1,167 @@ -/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.filesystem.core.internal.operations;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tcf.protocol.IChannel;
-import org.eclipse.tcf.protocol.IToken;
-import org.eclipse.tcf.protocol.Protocol;
-import org.eclipse.tcf.services.IFileSystem;
-import org.eclipse.tcf.services.IFileSystem.DoneUser;
-import org.eclipse.tcf.services.IFileSystem.FileSystemException;
-import org.eclipse.tcf.te.tcf.core.Tcf;
-import org.eclipse.tcf.te.tcf.filesystem.core.activator.CorePlugin;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.exceptions.TCFException;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.exceptions.TCFFileSystemException;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.UserAccount;
-import org.eclipse.tcf.te.tcf.filesystem.core.nls.Messages;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-
-/**
- * The operation to get the user account of a specified peer.
- */
-public class OpUser extends Operation {
- // The key to save and retrieve the user account in a peer model.
- /* default */ static final String USER_ACCOUNT_KEY = CorePlugin.getUniqueIdentifier()+".user.account"; //$NON-NLS-1$
-
- // The target peer.
- IPeerModel peerNode;
- // The resulting account.
- UserAccount result;
-
- /**
- * Create an operation using the target peer.
- * @param peerNode The peer whose user account to be checked.
- */
- public OpUser(IPeerModel peerNode) {
- this.peerNode = peerNode;
- }
-
- /**
- * Get the checking result.
- *
- * @return The user account checked.
- */
- public UserAccount getUserAccount() {
- return result;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.Operation#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- @Override
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- if(peerNode != null) {
- result = getUserFromPeer(peerNode);
- if (result == null) {
- final UserAccount[] accounts = new UserAccount[1];
- IChannel channel = null;
- try {
- channel = Operation.openChannel(peerNode.getPeer());
- if (channel != null) {
- accounts[0] = getUserByChannel(channel);
- if (accounts[0] != null) setUserToPeer(peerNode, accounts[0]);
- }
- }
- catch (TCFException e) {
- throw new InvocationTargetException(e);
- }
- finally {
- if (channel != null) Tcf.getChannelManager().closeChannel(channel);
- }
- result = accounts[0];
- }
- }
- }
-
- /**
- * Get the user account from the peer using the channel connected to the
- * remote target.
- *
- * @param channel
- * The channel connected to the remote target.
- * @return The user account information or null if it fails.
- */
- UserAccount getUserByChannel(final IChannel channel) throws TCFFileSystemException {
- IFileSystem service = Operation.getBlockingFileSystem(channel);
- if (service != null) {
- final TCFFileSystemException[] errors = new TCFFileSystemException[1];
- final UserAccount[] accounts = new UserAccount[1];
- service.user(new DoneUser() {
- @Override
- public void doneUser(IToken token, FileSystemException error, int real_uid, int effective_uid, int real_gid, int effective_gid, String home) {
- if (error == null) {
- accounts[0] = new UserAccount(real_uid, real_gid, effective_uid, effective_gid, home);
- }else {
- errors[0] = newTCFException(IStatus.WARNING, error);
- }
- }
- });
- if (errors[0] != null) {
- throw errors[0];
- }
- return accounts[0];
- }
- String message = NLS.bind(Messages.Operation_NoFileSystemError, channel.getRemotePeer().getID());
- throw new TCFFileSystemException(IStatus.ERROR, message);
- }
-
- /**
- * Get the user account stored in the specified peer model using a key named
- * "user.account" defined by the constant USER_ACCOUNT_KEY.
- *
- * @param peer
- * The peer model from which the user account is retrieved.
- * @return The user account if it exists or null if not.
- */
- private UserAccount getUserFromPeer(final IPeerModel peer) {
- Assert.isNotNull(peer);
- if (Protocol.isDispatchThread()) {
- return (UserAccount) peer.getProperty(USER_ACCOUNT_KEY);
- }
- final UserAccount[] accounts = new UserAccount[1];
- Protocol.invokeAndWait(new Runnable() {
- @Override
- public void run() {
- accounts[0] = (UserAccount) peer.getProperty(USER_ACCOUNT_KEY);
- }
- });
- return accounts[0];
- }
-
- /**
- * Save the user account to the specified peer model using a key named
- * "user.account" defined by the constant USER_ACCOUNT_KEY.
- *
- * @param peer
- * The peer model to which the user account is saved.
- */
- void setUserToPeer(final IPeerModel peer, final UserAccount account) {
- Assert.isNotNull(peer);
- Assert.isNotNull(account);
-
- if (Protocol.isDispatchThread()) {
- peer.setProperty(USER_ACCOUNT_KEY, account);
- } else {
- Protocol.invokeAndWait(new Runnable() {
- @Override
- public void run() {
- peer.setProperty(USER_ACCOUNT_KEY, account);
- }
- });
- }
- }
-}
+/******************************************************************************* + * Copyright (c) 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.filesystem.core.internal.operations; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.osgi.util.NLS; +import org.eclipse.tcf.protocol.IChannel; +import org.eclipse.tcf.protocol.IToken; +import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.services.IFileSystem; +import org.eclipse.tcf.services.IFileSystem.DoneUser; +import org.eclipse.tcf.services.IFileSystem.FileSystemException; +import org.eclipse.tcf.te.tcf.core.Tcf; +import org.eclipse.tcf.te.tcf.filesystem.core.activator.CorePlugin; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.exceptions.TCFException; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.exceptions.TCFFileSystemException; +import org.eclipse.tcf.te.tcf.filesystem.core.model.UserAccount; +import org.eclipse.tcf.te.tcf.filesystem.core.nls.Messages; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; + +/** + * The operation to get the user account of a specified peer. + */ +public class OpUser extends Operation { + // The key to save and retrieve the user account in a peer model. + /* default */ static final String USER_ACCOUNT_KEY = CorePlugin.getUniqueIdentifier()+".user.account"; //$NON-NLS-1$ + + // The target peer. + IPeerNode peerNode; + // The resulting account. + UserAccount result; + + /** + * Create an operation using the target peer. + * @param peerNode The peer whose user account to be checked. + */ + public OpUser(IPeerNode peerNode) { + this.peerNode = peerNode; + } + + /** + * Get the checking result. + * + * @return The user account checked. + */ + public UserAccount getUserAccount() { + return result; + } + + /* + * (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.Operation#run(org.eclipse.core.runtime.IProgressMonitor) + */ + @Override + public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { + if(peerNode != null) { + result = getUserFromPeer(peerNode); + if (result == null) { + final UserAccount[] accounts = new UserAccount[1]; + IChannel channel = null; + try { + channel = Operation.openChannel(peerNode.getPeer()); + if (channel != null) { + accounts[0] = getUserByChannel(channel); + if (accounts[0] != null) setUserToPeer(peerNode, accounts[0]); + } + } + catch (TCFException e) { + throw new InvocationTargetException(e); + } + finally { + if (channel != null) Tcf.getChannelManager().closeChannel(channel); + } + result = accounts[0]; + } + } + } + + /** + * Get the user account from the peer using the channel connected to the + * remote target. + * + * @param channel + * The channel connected to the remote target. + * @return The user account information or null if it fails. + */ + UserAccount getUserByChannel(final IChannel channel) throws TCFFileSystemException { + IFileSystem service = Operation.getBlockingFileSystem(channel); + if (service != null) { + final TCFFileSystemException[] errors = new TCFFileSystemException[1]; + final UserAccount[] accounts = new UserAccount[1]; + service.user(new DoneUser() { + @Override + public void doneUser(IToken token, FileSystemException error, int real_uid, int effective_uid, int real_gid, int effective_gid, String home) { + if (error == null) { + accounts[0] = new UserAccount(real_uid, real_gid, effective_uid, effective_gid, home); + }else { + errors[0] = newTCFException(IStatus.WARNING, error); + } + } + }); + if (errors[0] != null) { + throw errors[0]; + } + return accounts[0]; + } + String message = NLS.bind(Messages.Operation_NoFileSystemError, channel.getRemotePeer().getID()); + throw new TCFFileSystemException(IStatus.ERROR, message); + } + + /** + * Get the user account stored in the specified peer model using a key named + * "user.account" defined by the constant USER_ACCOUNT_KEY. + * + * @param peer + * The peer model from which the user account is retrieved. + * @return The user account if it exists or null if not. + */ + private UserAccount getUserFromPeer(final IPeerNode peer) { + Assert.isNotNull(peer); + if (Protocol.isDispatchThread()) { + return (UserAccount) peer.getProperty(USER_ACCOUNT_KEY); + } + final UserAccount[] accounts = new UserAccount[1]; + Protocol.invokeAndWait(new Runnable() { + @Override + public void run() { + accounts[0] = (UserAccount) peer.getProperty(USER_ACCOUNT_KEY); + } + }); + return accounts[0]; + } + + /** + * Save the user account to the specified peer model using a key named + * "user.account" defined by the constant USER_ACCOUNT_KEY. + * + * @param peer + * The peer model to which the user account is saved. + */ + void setUserToPeer(final IPeerNode peer, final UserAccount account) { + Assert.isNotNull(peer); + Assert.isNotNull(account); + + if (Protocol.isDispatchThread()) { + peer.setProperty(USER_ACCOUNT_KEY, account); + } else { + Protocol.invokeAndWait(new Runnable() { + @Override + public void run() { + peer.setProperty(USER_ACCOUNT_KEY, account); + } + }); + } + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/testers/TargetPropertyTester.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/testers/TargetPropertyTester.java index c7775f6c6..5f240fce1 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/testers/TargetPropertyTester.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/testers/TargetPropertyTester.java @@ -1,68 +1,68 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.filesystem.core.internal.testers;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.tcf.protocol.Protocol;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-
-/**
- * The property tester to test if the target OS is a Windows OS.
- */
-public class TargetPropertyTester extends PropertyTester {
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
- */
- @Override
- public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
- if(receiver instanceof IPeerModel) {
- final IPeerModel peerModel = (IPeerModel) receiver;
- if(property.equals("isWindows")) { //$NON-NLS-1$
- return isWindows(peerModel);
- }
- }
- return false;
- }
-
- /**
- * Test if the target represented by the peer model is a windows target.
- *
- * @param peerModel The peer model of the target.
- * @return true if it is a windows target.
- */
- public static boolean isWindows(final IPeerModel peerModel) {
- final String osName = getOSName(peerModel);
- return osName == null ? false : (osName.startsWith("Windows")); //$NON-NLS-1$
- }
-
- /**
- * Get the OS name from the peer model.
- *
- * @param peerModel The peer model.
- * @return OS name.
- */
- public static String getOSName(final IPeerModel peerModel) {
- final String[] osName = new String[1];
- if (Protocol.isDispatchThread()) {
- osName[0] = peerModel.getPeer().getOSName();
- }
- else {
- Protocol.invokeAndWait(new Runnable() {
- @Override
- public void run() {
- osName[0] = peerModel.getPeer().getOSName();
- }
- });
- }
- return osName[0];
- }
-}
+/******************************************************************************* + * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.filesystem.core.internal.testers; + +import org.eclipse.core.expressions.PropertyTester; +import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; + +/** + * The property tester to test if the target OS is a Windows OS. + */ +public class TargetPropertyTester extends PropertyTester { + + /* + * (non-Javadoc) + * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object) + */ + @Override + public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { + if(receiver instanceof IPeerNode) { + final IPeerNode peerNode = (IPeerNode) receiver; + if(property.equals("isWindows")) { //$NON-NLS-1$ + return isWindows(peerNode); + } + } + return false; + } + + /** + * Test if the target represented by the peer model is a windows target. + * + * @param peerNode The peer model of the target. + * @return true if it is a windows target. + */ + public static boolean isWindows(final IPeerNode peerNode) { + final String osName = getOSName(peerNode); + return osName == null ? false : (osName.startsWith("Windows")); //$NON-NLS-1$ + } + + /** + * Get the OS name from the peer model. + * + * @param peerNode The peer model. + * @return OS name. + */ + public static String getOSName(final IPeerNode peerNode) { + final String[] osName = new String[1]; + if (Protocol.isDispatchThread()) { + osName[0] = peerNode.getPeer().getOSName(); + } + else { + Protocol.invokeAndWait(new Runnable() { + @Override + public void run() { + osName[0] = peerNode.getPeer().getOSName(); + } + }); + } + return osName[0]; + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/url/TcfURLConnection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/url/TcfURLConnection.java index 33fc6a3f1..fe60d29ad 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/url/TcfURLConnection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/internal/url/TcfURLConnection.java @@ -32,8 +32,8 @@ import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.filesystem.core.internal.exceptions.TCFChannelException; import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.Operation; import org.eclipse.tcf.te.tcf.filesystem.core.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; /** @@ -117,7 +117,7 @@ public class TcfURLConnection extends URLConnection { public void run() { IPeer p = Protocol.getLocator().getPeers().get(peerId); if (p == null) { - IPeerModel peerNode = Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelById(peerId); + IPeerNode peerNode = Model.getModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId); if (peerNode != null) p = peerNode.getPeer(); } peer.set(p); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/model/AbstractTreeNode.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/model/AbstractTreeNode.java index d0172ba98..9e490d632 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/model/AbstractTreeNode.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/model/AbstractTreeNode.java @@ -23,7 +23,7 @@ import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.core.interfaces.IChannelManager.DoneOpenChannel; import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.NullOpExecutor; import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpUser; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * The base class of FSTreeNode and ProcessTreeNode which provides base members and methods. @@ -45,7 +45,7 @@ public abstract class AbstractTreeNode extends PlatformObject { /** * The peer node the file system tree node is associated with. */ - public IPeerModel peerNode = null; + public IPeerNode peerNode = null; /** * Flag to mark once the children of the node got queried @@ -130,7 +130,7 @@ public abstract class AbstractTreeNode extends PlatformObject { * @param peerNode The peer node of the TCF agent. * @return The user account that runs the agent. */ - protected UserAccount getUserAccount(IPeerModel peerNode) { + protected UserAccount getUserAccount(IPeerNode peerNode) { OpUser user = new OpUser(peerNode); new NullOpExecutor().execute(user); return user.getUserAccount(); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/model/FSModel.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/model/FSModel.java index 1c5229336..890ce3c3a 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/model/FSModel.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.core/src/org/eclipse/tcf/te/tcf/filesystem/core/model/FSModel.java @@ -14,7 +14,7 @@ import java.util.concurrent.atomic.AtomicReference; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.tcf.filesystem.core.activator.CorePlugin; import org.eclipse.tcf.te.tcf.filesystem.core.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * The file system model implementation. @@ -26,19 +26,19 @@ public final class FSModel implements ITreeNodeModel { * Get the file system model of the peer model. If it does not * exist yet, create a new instance and store it. * - * @param peerModel The peer model + * @param peerNode The peer model * @return The file system model connected this peer model. */ - public static FSModel getFSModel(final IPeerModel peerModel) { + public static FSModel getFSModel(final IPeerNode peerNode) { final AtomicReference<FSModel> model = new AtomicReference<FSModel>(); Runnable runnable = new Runnable() { @Override public void run() { - if (peerModel != null) { - model.set((FSModel) peerModel.getProperty(FSMODEL_KEY)); + if (peerNode != null) { + model.set((FSModel) peerNode.getProperty(FSMODEL_KEY)); if (model.get() == null) { - model.set(new FSModel(peerModel)); - peerModel.setProperty(FSMODEL_KEY, model.get()); + model.set(new FSModel(peerNode)); + peerNode.setProperty(FSMODEL_KEY, model.get()); } } } @@ -52,11 +52,11 @@ public final class FSModel implements ITreeNodeModel { // The root node of the peer model private FSTreeNode root; - private IPeerModel peerNode; + private IPeerNode peerNode; /** * Create a File System Model. */ - /* default */ FSModel(IPeerModel peerNode) { + /* default */ FSModel(IPeerNode peerNode) { this.peerNode = peerNode; } @@ -100,7 +100,7 @@ public final class FSModel implements ITreeNodeModel { * @param peerNode The peer. * @return The root file system node. */ - public static FSTreeNode createRootNode(IPeerModel peerNode) { + public static FSTreeNode createRootNode(IPeerNode peerNode) { FSTreeNode node = new FSTreeNode(); node.type = "FSRootNode"; //$NON-NLS-1$ node.peerNode = peerNode; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/plugin.xml index a621432cc..ca4084052 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/plugin.xml @@ -27,7 +27,7 @@ priority="normal"> <triggerPoints> <instanceof - value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> </instanceof> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" @@ -112,7 +112,7 @@ pageId="org.eclipse.tcf.te.tcf.filesystem.FSExplorerEditorPage"> <enablement> <with variable="activeEditorInput"> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="FileSystem"/> <test property="org.eclipse.tcf.te.runtime.preference" @@ -1680,10 +1680,10 @@ <adapter type="org.eclipse.ui.IPersistableElement"/> <adapter type="org.eclipse.tcf.te.ui.interfaces.ILazyLoader"/> <adapter type="org.eclipse.tcf.te.ui.interfaces.ISearchable"/> - <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider"/> + <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider"/> </factory> <factory - adaptableType="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel" + adaptableType="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode" class="org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.ViewerInputAdapterFactory"> <adapter type="org.eclipse.tcf.te.core.interfaces.IViewerInput"> @@ -1878,7 +1878,7 @@ visibleInUI="true"> <activation> <with variable="input"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="org.eclipse.tcf.te.tcf.filesystem.propertytester.peer.isWindows" /> </adapt> </with> diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSNavigatorContentProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSNavigatorContentProvider.java index dabcbf046..01f7f9f22 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSNavigatorContentProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/FSNavigatorContentProvider.java @@ -1,86 +1,86 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.filesystem.ui.controls;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSModel;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.ITreeNodeModel;
-import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-
-
-/**
- * File system content provider for the common navigator of Target Explorer.
- */
-public class FSNavigatorContentProvider extends NavigatorContentProvider {
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.trees.TreeContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
- */
- @Override
- public void inputChanged(final Viewer viewer, Object oldInput, Object newInput) {
- super.inputChanged(viewer, oldInput, newInput);
- UIPlugin.getClipboard().addPropertyChangeListener(commonViewerListener);
- UIPlugin plugin = UIPlugin.getDefault();
- IPreferenceStore preferenceStore = plugin.getPreferenceStore();
- preferenceStore.addPropertyChangeListener(commonViewerListener);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.trees.TreeContentProvider#dispose()
- */
- @Override
- public void dispose() {
- UIPlugin.getClipboard().removePropertyChangeListener(commonViewerListener);
- UIPlugin plugin = UIPlugin.getDefault();
- IPreferenceStore preferenceStore = plugin.getPreferenceStore();
- preferenceStore.removePropertyChangeListener(commonViewerListener);
- super.dispose();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
- */
- @Override
- public Object[] getChildren(Object parentElement) {
- if (parentElement instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode)parentElement;
- if (node.isFile()) return NO_ELEMENTS;
- }
- return super.getChildren(parentElement);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.filesystem.ui.controls.NavigatorContentProvider#doGetModel(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel)
- */
- @Override
- protected ITreeNodeModel doGetModel(IPeerModel peerNode) {
- return FSModel.getFSModel(peerNode);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
- */
- @Override
- public boolean hasChildren(final Object element) {
- if (element instanceof FSTreeNode) {
- FSTreeNode node = (FSTreeNode)element;
- if(node.isFile()) {
- return false;
- }
- }
- return super.hasChildren(element);
- }
-}
+/******************************************************************************* + * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.filesystem.ui.controls; + +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.tcf.te.tcf.filesystem.core.model.FSModel; +import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; +import org.eclipse.tcf.te.tcf.filesystem.core.model.ITreeNodeModel; +import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; + + +/** + * File system content provider for the common navigator of Target Explorer. + */ +public class FSNavigatorContentProvider extends NavigatorContentProvider { + + /* + * (non-Javadoc) + * @see org.eclipse.tcf.te.ui.trees.TreeContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) + */ + @Override + public void inputChanged(final Viewer viewer, Object oldInput, Object newInput) { + super.inputChanged(viewer, oldInput, newInput); + UIPlugin.getClipboard().addPropertyChangeListener(commonViewerListener); + UIPlugin plugin = UIPlugin.getDefault(); + IPreferenceStore preferenceStore = plugin.getPreferenceStore(); + preferenceStore.addPropertyChangeListener(commonViewerListener); + } + + /* + * (non-Javadoc) + * @see org.eclipse.tcf.te.ui.trees.TreeContentProvider#dispose() + */ + @Override + public void dispose() { + UIPlugin.getClipboard().removePropertyChangeListener(commonViewerListener); + UIPlugin plugin = UIPlugin.getDefault(); + IPreferenceStore preferenceStore = plugin.getPreferenceStore(); + preferenceStore.removePropertyChangeListener(commonViewerListener); + super.dispose(); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) + */ + @Override + public Object[] getChildren(Object parentElement) { + if (parentElement instanceof FSTreeNode) { + FSTreeNode node = (FSTreeNode)parentElement; + if (node.isFile()) return NO_ELEMENTS; + } + return super.getChildren(parentElement); + } + + /* + * (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.filesystem.ui.controls.NavigatorContentProvider#doGetModel(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode) + */ + @Override + protected ITreeNodeModel doGetModel(IPeerNode peerNode) { + return FSModel.getFSModel(peerNode); + } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) + */ + @Override + public boolean hasChildren(final Object element) { + if (element instanceof FSTreeNode) { + FSTreeNode node = (FSTreeNode)element; + if(node.isFile()) { + return false; + } + } + return super.hasChildren(element); + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/NavigatorContentProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/NavigatorContentProvider.java index d6bb7a3fa..2d6f04816 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/NavigatorContentProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/controls/NavigatorContentProvider.java @@ -18,7 +18,7 @@ import org.eclipse.jface.viewers.TreeExpansionEvent; import org.eclipse.jface.viewers.Viewer; import org.eclipse.tcf.te.tcf.filesystem.core.model.AbstractTreeNode; import org.eclipse.tcf.te.tcf.filesystem.core.model.ITreeNodeModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** @@ -96,8 +96,8 @@ public abstract class NavigatorContentProvider extends TreeContentProvider impl public Object[] getChildren(Object parentElement) { super.getChildren(parentElement); - if (parentElement instanceof IPeerModel) { - final IPeerModel peerNode = (IPeerModel)parentElement; + if (parentElement instanceof IPeerNode) { + final IPeerNode peerNode = (IPeerNode)parentElement; ITreeNodeModel model = doGetModel(peerNode); if (isRootNodeVisible()) { AbstractTreeNode root = model.getRoot(); @@ -128,7 +128,7 @@ public abstract class NavigatorContentProvider extends TreeContentProvider impl * @param peerNode The peer node from where to get the model. * @return The tree node model. */ - protected abstract ITreeNodeModel doGetModel(IPeerModel peerNode); + protected abstract ITreeNodeModel doGetModel(IPeerNode peerNode); /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) @@ -148,9 +148,9 @@ public abstract class NavigatorContentProvider extends TreeContentProvider impl hasChildren = !node.childrenQueried || super.hasChildren(element); } } - else if (element instanceof IPeerModel) { - IPeerModel peerModel = (IPeerModel) element; - ITreeNodeModel model = doGetModel(peerModel); + else if (element instanceof IPeerNode) { + IPeerNode peerNode = (IPeerNode) element; + ITreeNodeModel model = doGetModel(peerNode); AbstractTreeNode root = model.getRoot(); hasChildren = root != null ? hasChildren(root) : true; } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSOpenFileDialog.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSOpenFileDialog.java index 23ed94811..c2e51d531 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSOpenFileDialog.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/dialogs/FSOpenFileDialog.java @@ -33,7 +33,7 @@ import org.eclipse.tcf.te.tcf.filesystem.ui.controls.FSTreeViewerSorter; import org.eclipse.tcf.te.tcf.filesystem.ui.interfaces.IFSConstants; import org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns.FSTreeElementLabelProvider; import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.ui.trees.FilterDescriptor; import org.eclipse.tcf.te.ui.trees.Pending; import org.eclipse.tcf.te.ui.trees.ViewerStateManager; @@ -117,9 +117,9 @@ public class FSOpenFileDialog extends ElementTreeSelectionDialog { if (filterPath != null && !"".equals(filterPath.trim())) { //$NON-NLS-1$ IPath path = new Path(filterPath); - if (viewer.getInput() instanceof IPeerModel) { + if (viewer.getInput() instanceof IPeerNode) { Object element = null; - FSModel model = FSModel.getFSModel((IPeerModel)viewer.getInput()); + FSModel model = FSModel.getFSModel((IPeerNode)viewer.getInput()); if (model != null) { FSTreeNode root = model.getRoot(); ITreeContentProvider contentProvider = (ITreeContentProvider)viewer.getContentProvider(); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeAdapterFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeAdapterFactory.java index 5c9c6772e..647c2974c 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeAdapterFactory.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeAdapterFactory.java @@ -21,8 +21,8 @@ import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin; import org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns.FSTreeElementLabelProvider; import org.eclipse.tcf.te.tcf.filesystem.ui.internal.search.FSTreeNodeSearchable; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.ui.interfaces.ILazyLoader; import org.eclipse.tcf.te.ui.interfaces.ISearchable; import org.eclipse.ui.IActionFilter; @@ -36,13 +36,13 @@ public class FSTreeNodeAdapterFactory implements IAdapterFactory { // The fFilters map caching fFilters for FS nodes. private Map<FSTreeNode, NodeStateFilter> filters; - public static class FSTreeNodePeerModelProvider extends PlatformObject implements IPeerModelProvider { + public static class FSTreeNodePeerNodeProvider extends PlatformObject implements IPeerNodeProvider { private final FSTreeNode node; /** * Constructor */ - public FSTreeNodePeerModelProvider(FSTreeNode node) { + public FSTreeNodePeerNodeProvider(FSTreeNode node) { Assert.isNotNull(node); this.node = node; } @@ -57,10 +57,10 @@ public class FSTreeNodeAdapterFactory implements IAdapterFactory { } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider#getPeerModel() + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider#getPeerModel() */ @Override - public final IPeerModel getPeerModel() { + public final IPeerNode getPeerModel() { return node.peerNode; } } @@ -97,8 +97,8 @@ public class FSTreeNodeAdapterFactory implements IAdapterFactory { else if (adapterType == ILazyLoader.class) { return new FSTreeNodeLoader(node); } - else if (adapterType == IPeerModelProvider.class) { - return new FSTreeNodePeerModelProvider(node); + else if (adapterType == IPeerNodeProvider.class) { + return new FSTreeNodePeerNodeProvider(node); } else if (adapterType == ISearchable.class) { return new FSTreeNodeSearchable(node); @@ -113,6 +113,6 @@ public class FSTreeNodeAdapterFactory implements IAdapterFactory { */ @Override public Class[] getAdapterList() { - return new Class[] { IActionFilter.class, ILabelProvider.class, IPersistableElement.class, ILazyLoader.class, ISearchable.class, IPeerModelProvider.class }; + return new Class[] { IActionFilter.class, ILabelProvider.class, IPersistableElement.class, ILazyLoader.class, ISearchable.class, IPeerNodeProvider.class }; } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeFactory.java index 41b2ff90d..28d3a43cd 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeFactory.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/FSTreeNodeFactory.java @@ -15,8 +15,8 @@ import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor; import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.NullOpExecutor; import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpParsePath; import org.eclipse.tcf.te.tcf.filesystem.core.model.FSModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.ui.IElementFactory; import org.eclipse.ui.IMemento; @@ -33,13 +33,13 @@ public class FSTreeNodeFactory implements IElementFactory { @Override public IAdaptable createElement(IMemento memento) { String peerId = memento.getString("peerId"); //$NON-NLS-1$ - IPeerModel peerModel = Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelById(peerId); - if(peerModel != null) { + IPeerNode peerNode = Model.getModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId); + if(peerNode != null) { String path = memento.getString("path"); //$NON-NLS-1$ if(path == null) { - return FSModel.getFSModel(peerModel).getRoot(); + return FSModel.getFSModel(peerNode).getRoot(); } - OpParsePath op = new OpParsePath(peerModel, path); + OpParsePath op = new OpParsePath(peerNode, path); IOpExecutor executor = new NullOpExecutor(); IStatus status = executor.execute(op); if(status.isOK()) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/PeerModelViewerInput.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/PeerNodeViewerInput.java index 9647c23c7..119bd25d9 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/PeerModelViewerInput.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/PeerNodeViewerInput.java @@ -1,40 +1,40 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters;
-
-import org.eclipse.tcf.te.core.interfaces.IViewerInput;
-import org.eclipse.tcf.te.core.utils.PropertyChangeProvider;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-
-/**
- * The viewer input of an IPeerModel instance.
- */
-public class PeerModelViewerInput extends PropertyChangeProvider implements IViewerInput {
- // The peer model.
- private IPeerModel peerModel;
-
- /**
- * Create an instance with a peer model.
- *
- * @param peerModel The peer model.
- */
- public PeerModelViewerInput(IPeerModel peerModel) {
- this.peerModel = peerModel;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.interfaces.IViewerInput#getInputId()
- */
- @Override
- public String getInputId() {
- return peerModel.getPeerId();
- }
-}
+/******************************************************************************* + * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters; + +import org.eclipse.tcf.te.core.interfaces.IViewerInput; +import org.eclipse.tcf.te.core.utils.PropertyChangeProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; + +/** + * The viewer input of an IPeerNode instance. + */ +public class PeerNodeViewerInput extends PropertyChangeProvider implements IViewerInput { + // The peer model. + private IPeerNode peerNode; + + /** + * Create an instance with a peer model. + * + * @param peerNode The peer model. + */ + public PeerNodeViewerInput(IPeerNode peerNode) { + this.peerNode = peerNode; + } + + /* + * (non-Javadoc) + * @see org.eclipse.tcf.te.ui.interfaces.IViewerInput#getInputId() + */ + @Override + public String getInputId() { + return peerNode.getPeerId(); + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/ViewerInputAdapterFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/ViewerInputAdapterFactory.java index 9ea010e75..730b93328 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/ViewerInputAdapterFactory.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/adapters/ViewerInputAdapterFactory.java @@ -1,81 +1,81 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.tcf.protocol.Protocol;
-import org.eclipse.tcf.te.core.interfaces.IPropertyChangeProvider;
-import org.eclipse.tcf.te.core.interfaces.IViewerInput;
-import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-
-/**
- * The adapter factory for IViewerInput.
- */
-public class ViewerInputAdapterFactory implements IAdapterFactory {
- // The key to store and access the the viewer input object.
- private static final String VIEWER_INPUT_KEY = UIPlugin.getUniqueIdentifier()+".peer.viewerInput"; //$NON-NLS-1$
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
- */
- @Override
- public Object getAdapter(Object adaptableObject, Class adapterType) {
- if(adaptableObject instanceof IPeerModel) {
- if (IViewerInput.class.equals(adapterType)
- || IPropertyChangeProvider.class.equals(adapterType)) {
- IPeerModel peerModel = (IPeerModel) adaptableObject;
- return getViewerInput(peerModel);
- }
- }
- return null;
- }
-
- /**
- * Get a viewer input from the specified peer model.
- *
- * @param peerModel The peer model to get the viewer input from.
- * @return The peer model's viewer input.
- */
- PeerModelViewerInput getViewerInput(final IPeerModel peerModel) {
- if (peerModel != null) {
- if (Protocol.isDispatchThread()) {
- PeerModelViewerInput model = (PeerModelViewerInput) peerModel.getProperty(VIEWER_INPUT_KEY);
- if (model == null) {
- model = new PeerModelViewerInput(peerModel);
- peerModel.setProperty(VIEWER_INPUT_KEY, model);
- }
- return model;
- }
- final AtomicReference<PeerModelViewerInput> reference = new AtomicReference<PeerModelViewerInput>();
- Protocol.invokeAndWait(new Runnable() {
- @Override
- public void run() {
- reference.set(getViewerInput(peerModel));
- }
- });
- return reference.get();
- }
- return null;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
- */
- @Override
- public Class[] getAdapterList() {
- return new Class[] { IViewerInput.class, IPropertyChangeProvider.class };
- }
-
-}
+/******************************************************************************* + * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters; + +import java.util.concurrent.atomic.AtomicReference; + +import org.eclipse.core.runtime.IAdapterFactory; +import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.core.interfaces.IPropertyChangeProvider; +import org.eclipse.tcf.te.core.interfaces.IViewerInput; +import org.eclipse.tcf.te.tcf.filesystem.ui.activator.UIPlugin; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; + +/** + * The adapter factory for IViewerInput. + */ +public class ViewerInputAdapterFactory implements IAdapterFactory { + // The key to store and access the the viewer input object. + private static final String VIEWER_INPUT_KEY = UIPlugin.getUniqueIdentifier()+".peer.viewerInput"; //$NON-NLS-1$ + + /* + * (non-Javadoc) + * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class) + */ + @Override + public Object getAdapter(Object adaptableObject, Class adapterType) { + if(adaptableObject instanceof IPeerNode) { + if (IViewerInput.class.equals(adapterType) + || IPropertyChangeProvider.class.equals(adapterType)) { + IPeerNode peerNode = (IPeerNode) adaptableObject; + return getViewerInput(peerNode); + } + } + return null; + } + + /** + * Get a viewer input from the specified peer model. + * + * @param peerNode The peer model to get the viewer input from. + * @return The peer model's viewer input. + */ + PeerNodeViewerInput getViewerInput(final IPeerNode peerNode) { + if (peerNode != null) { + if (Protocol.isDispatchThread()) { + PeerNodeViewerInput model = (PeerNodeViewerInput) peerNode.getProperty(VIEWER_INPUT_KEY); + if (model == null) { + model = new PeerNodeViewerInput(peerNode); + peerNode.setProperty(VIEWER_INPUT_KEY, model); + } + return model; + } + final AtomicReference<PeerNodeViewerInput> reference = new AtomicReference<PeerNodeViewerInput>(); + Protocol.invokeAndWait(new Runnable() { + @Override + public void run() { + reference.set(getViewerInput(peerNode)); + } + }); + return reference.get(); + } + return null; + } + + /* + * (non-Javadoc) + * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList() + */ + @Override + public Class[] getAdapterList() { + return new Class[] { IViewerInput.class, IPropertyChangeProvider.class }; + } + +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveFilesHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveFilesHandler.java index 8cf95664e..9f8b01d22 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveFilesHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/MoveFilesHandler.java @@ -1,55 +1,55 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.filesystem.ui.internal.handlers;
-
-import java.util.List;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpMove;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
-import org.eclipse.tcf.te.tcf.filesystem.ui.dialogs.FSFolderSelectionDialog;
-import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-import org.eclipse.ui.handlers.HandlerUtil;
-/**
- * The handler that moves the selected files or folders to a destination folder.
- */
-public class MoveFilesHandler extends AbstractHandler {
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
- @Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
- Shell shell = HandlerUtil.getActiveShellChecked(event);
- FSFolderSelectionDialog dialog = new FSFolderSelectionDialog(shell);
- IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
- List<FSTreeNode> nodes = selection.toList();
- IPeerModel peer = nodes.get(0).peerNode;
- dialog.setInput(peer);
- dialog.setMovedNodes(nodes);
- if (dialog.open() == Window.OK) {
- Object obj = dialog.getFirstResult();
- Assert.isTrue(obj instanceof FSTreeNode);
- FSTreeNode dest = (FSTreeNode) obj;
- IOpExecutor executor = new UiExecutor();
- executor.execute(new OpMove(nodes, dest, new MoveCopyCallback()));
- }
- return null;
- }
-}
+/******************************************************************************* + * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.filesystem.ui.internal.handlers; + +import java.util.List; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.Assert; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.window.Window; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpMove; +import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; +import org.eclipse.tcf.te.tcf.filesystem.ui.dialogs.FSFolderSelectionDialog; +import org.eclipse.tcf.te.tcf.filesystem.ui.internal.operations.UiExecutor; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.ui.handlers.HandlerUtil; +/** + * The handler that moves the selected files or folders to a destination folder. + */ +public class MoveFilesHandler extends AbstractHandler { + + /* + * (non-Javadoc) + * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent) + */ + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + Shell shell = HandlerUtil.getActiveShellChecked(event); + FSFolderSelectionDialog dialog = new FSFolderSelectionDialog(shell); + IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event); + List<FSTreeNode> nodes = selection.toList(); + IPeerNode peer = nodes.get(0).peerNode; + dialog.setInput(peer); + dialog.setMovedNodes(nodes); + if (dialog.open() == Window.OK) { + Object obj = dialog.getFirstResult(); + Assert.isTrue(obj instanceof FSTreeNode); + FSTreeNode dest = (FSTreeNode) obj; + IOpExecutor executor = new UiExecutor(); + executor.execute(new OpMove(nodes, dest, new MoveCopyCallback())); + } + return null; + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshViewerHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshViewerHandler.java index b3ee59200..2cbd52133 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshViewerHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/handlers/RefreshViewerHandler.java @@ -1,46 +1,46 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.filesystem.ui.internal.handlers;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.JobExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpRefresh;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSModel;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * The action handler to refresh the whole file system tree.
- */
-public class RefreshViewerHandler extends AbstractHandler {
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
- @Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
- IEditorInput editorInput = HandlerUtil.getActiveEditorInputChecked(event);
- IPeerModel peer = (IPeerModel) editorInput.getAdapter(IPeerModel.class);
- if (peer != null) {
- FSTreeNode root = FSModel.getFSModel(peer).getRoot();
- if (root != null) {
- IOpExecutor executor = new JobExecutor();
- executor.execute(new OpRefresh(root));
- }
- }
- return null;
- }
-}
+/******************************************************************************* + * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.filesystem.ui.internal.handlers; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.IOpExecutor; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.JobExecutor; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpRefresh; +import org.eclipse.tcf.te.tcf.filesystem.core.model.FSModel; +import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.handlers.HandlerUtil; + +/** + * The action handler to refresh the whole file system tree. + */ +public class RefreshViewerHandler extends AbstractHandler { + + /* + * (non-Javadoc) + * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent) + */ + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + IEditorInput editorInput = HandlerUtil.getActiveEditorInputChecked(event); + IPeerNode peer = (IPeerNode) editorInput.getAdapter(IPeerNode.class); + if (peer != null) { + FSTreeNode root = FSModel.getFSModel(peer).getRoot(); + if (root != null) { + IOpExecutor executor = new JobExecutor(); + executor.execute(new OpRefresh(root)); + } + } + return null; + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEditorPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEditorPage.java index c23c01bbd..81cb41916 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEditorPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/pages/FSExplorerEditorPage.java @@ -12,7 +12,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.pages; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.tcf.te.tcf.filesystem.core.model.FSModel; import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.ui.views.editor.pages.TreeViewerExplorerEditorPage; /** * The editor page for the file system explorer. @@ -62,10 +62,10 @@ public class FSExplorerEditorPage extends TreeViewerExplorerEditorPage { @Override protected Object getViewerInput() { Object element = getEditorInputNode(); - IPeerModel peerModel = element instanceof IPeerModel ? (IPeerModel)element : null; - if (peerModel == null && element instanceof IAdaptable) { - peerModel = (IPeerModel)((IAdaptable)element).getAdapter(IPeerModel.class); + IPeerNode peerNode = element instanceof IPeerNode ? (IPeerNode)element : null; + if (peerNode == null && element instanceof IAdaptable) { + peerNode = (IPeerNode)((IAdaptable)element).getAdapter(IPeerNode.class); } - return peerModel != null ? FSModel.getFSModel(peerModel).getRoot() : null; + return peerNode != null ? FSModel.getFSModel(peerNode).getRoot() : null; } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFolderSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFolderSection.java index 1376ff9be..9336a1e0c 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFolderSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/BasicFolderSection.java @@ -18,9 +18,9 @@ import org.eclipse.osgi.util.NLS; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; -import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerModelProvider; +import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerNodeProvider; import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.tcf.ui.tabbed.BaseTitledSection; import org.eclipse.tcf.te.ui.swt.SWTControlUtil; import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; @@ -63,9 +63,9 @@ public class BasicFolderSection extends BaseTitledSection { * @see org.eclipse.tcf.te.ui.views.tabbed.BaseTitledSection#updateData(org.eclipse.tcf.te.ui.interfaces.IPropertyChangeProvider) */ @Override - protected void updateInput(IPeerModelProvider input) { - Assert.isTrue(input instanceof FSTreeNodePeerModelProvider); - this.node = ((FSTreeNodePeerModelProvider)input).getFSTreeNode(); + protected void updateInput(IPeerNodeProvider input) { + Assert.isTrue(input instanceof FSTreeNodePeerNodeProvider); + this.node = ((FSTreeNodePeerNodeProvider)input).getFSTreeNode(); this.clone = (FSTreeNode) node.clone(); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxPermissionsSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxPermissionsSection.java index 519ecfaa7..f95012413 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxPermissionsSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/LinuxPermissionsSection.java @@ -18,9 +18,9 @@ import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; -import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerModelProvider; +import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerNodeProvider; import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.tcf.ui.tabbed.BaseTitledSection; import org.eclipse.tcf.te.ui.swt.SWTControlUtil; import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants; @@ -109,9 +109,9 @@ public class LinuxPermissionsSection extends BaseTitledSection { * @see org.eclipse.tcf.te.ui.views.tabbed.BaseTitledSection#updateData(org.eclipse.tcf.te.ui.interfaces.IPropertyChangeProvider) */ @Override - protected void updateInput(IPeerModelProvider input) { - Assert.isTrue(input instanceof FSTreeNodePeerModelProvider); - this.node = ((FSTreeNodePeerModelProvider)input).getFSTreeNode(); + protected void updateInput(IPeerNodeProvider input) { + Assert.isTrue(input instanceof FSTreeNodePeerNodeProvider); + this.node = ((FSTreeNodePeerNodeProvider)input).getFSTreeNode(); this.clone = (FSTreeNode) node.clone(); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesCESection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesCESection.java index 2a555f1bb..852bda7d4 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesCESection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesCESection.java @@ -17,9 +17,9 @@ import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IWindowsFileAttributes; import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; -import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerModelProvider; +import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerNodeProvider; import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.tcf.ui.tabbed.BaseTitledSection; import org.eclipse.tcf.te.ui.swt.SWTControlUtil; import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants; @@ -66,9 +66,9 @@ public class WindowsAttributesCESection extends BaseTitledSection { * @see org.eclipse.tcf.te.ui.views.tabbed.BaseTitledSection#updateData(org.eclipse.tcf.te.ui.interfaces.IPropertyChangeProvider) */ @Override - protected void updateInput(IPeerModelProvider input) { - Assert.isTrue(input instanceof FSTreeNodePeerModelProvider); - this.node = ((FSTreeNodePeerModelProvider)input).getFSTreeNode(); + protected void updateInput(IPeerNodeProvider input) { + Assert.isTrue(input instanceof FSTreeNodePeerNodeProvider); + this.node = ((FSTreeNodePeerNodeProvider)input).getFSTreeNode(); } /* diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesSection.java index 02298c6d9..cda8af8b4 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsAttributesSection.java @@ -16,9 +16,9 @@ import org.eclipse.swt.layout.FormData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; -import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerModelProvider; +import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerNodeProvider; import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.tcf.ui.tabbed.BaseTitledSection; import org.eclipse.tcf.te.ui.swt.SWTControlUtil; import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants; @@ -65,9 +65,9 @@ public class WindowsAttributesSection extends BaseTitledSection { * @see org.eclipse.tcf.te.ui.views.tabbed.BaseTitledSection#updateData(org.eclipse.tcf.te.ui.interfaces.IPropertyChangeProvider) */ @Override - protected void updateInput(IPeerModelProvider input) { - Assert.isTrue(input instanceof FSTreeNodePeerModelProvider); - this.node = ((FSTreeNodePeerModelProvider)input).getFSTreeNode(); + protected void updateInput(IPeerNodeProvider input) { + Assert.isTrue(input instanceof FSTreeNodePeerNodeProvider); + this.node = ((FSTreeNodePeerNodeProvider)input).getFSTreeNode(); this.clone = (FSTreeNode) node.clone(); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderAISection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderAISection.java index a3e421b0e..0ed1f1b0a 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderAISection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/tabbed/WindowsFolderAISection.java @@ -17,9 +17,9 @@ import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.tcf.te.tcf.filesystem.core.interfaces.IWindowsFileAttributes; import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; -import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerModelProvider; +import org.eclipse.tcf.te.tcf.filesystem.ui.internal.adapters.FSTreeNodeAdapterFactory.FSTreeNodePeerNodeProvider; import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.tcf.ui.tabbed.BaseTitledSection; import org.eclipse.tcf.te.ui.swt.SWTControlUtil; import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants; @@ -86,9 +86,9 @@ public class WindowsFolderAISection extends BaseTitledSection { * @see org.eclipse.tcf.te.ui.views.tabbed.BaseTitledSection#updateData(org.eclipse.tcf.te.ui.interfaces.IPropertyChangeProvider) */ @Override - protected void updateInput(IPeerModelProvider input) { - Assert.isTrue(input instanceof FSTreeNodePeerModelProvider); - this.node = ((FSTreeNodePeerModelProvider)input).getFSTreeNode(); + protected void updateInput(IPeerNodeProvider input) { + Assert.isTrue(input instanceof FSTreeNodePeerNodeProvider); + this.node = ((FSTreeNodePeerNodeProvider)input).getFSTreeNode(); } /* diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizard.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizard.java index 6d9d1031b..68a106cd9 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizard.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizard.java @@ -20,8 +20,8 @@ import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCreate; import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.ui.views.editor.pages.TreeViewerExplorerEditorPage; import org.eclipse.tcf.te.ui.wizards.AbstractWizard; import org.eclipse.ui.INewWizard; @@ -40,7 +40,7 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard // The folder in which the new node is created. private FSTreeNode folder; // The target peer where the new node is created. - private IPeerModel peer; + private IPeerNode peer; // The wizard page used to create the new node. private NewNodeWizardPage newPage; @@ -70,9 +70,9 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard } peer = folder.peerNode; } - else if (element instanceof IPeerModel) { - if(hasFileSystem((IPeerModel) element)) { - peer = (IPeerModel) element; + else if (element instanceof IPeerNode) { + if(hasFileSystem((IPeerNode) element)) { + peer = (IPeerNode) element; } } } @@ -84,10 +84,10 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard * @param peer The target peer. * @return true if it has a file system service. */ - public boolean hasFileSystem(final IPeerModel peer) { + public boolean hasFileSystem(final IPeerNode peer) { if(Protocol.isDispatchThread()) { String services = null; - services = peer.getStringProperty(IPeerModelProperties.PROP_REMOTE_SERVICES); + services = peer.getStringProperty(IPeerNodeProperties.PROP_REMOTE_SERVICES); if (services != null) { // Lookup each service individually for (String service : services.split(",")) { //$NON-NLS-1$ @@ -225,7 +225,7 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard * * @return The target peer selected. */ - public IPeerModel getPeer(){ + public IPeerNode getPeer(){ return peer; } @@ -234,7 +234,7 @@ public abstract class NewNodeWizard extends AbstractWizard implements INewWizard * * @param peer The newly selected target peer. */ - public void setPeer(IPeerModel peer) { + public void setPeer(IPeerNode peer) { this.peer = peer; newPage.setPeer(peer); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizardPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizardPage.java index 139f6b07a..7eb07a21a 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizardPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/NewNodeWizardPage.java @@ -35,7 +35,7 @@ import org.eclipse.tcf.te.tcf.filesystem.ui.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.filesystem.ui.interfaces.IFSConstants; import org.eclipse.tcf.te.tcf.filesystem.ui.internal.columns.FSTreeElementLabelProvider; import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.ui.controls.BaseEditBrowseTextControl; import org.eclipse.tcf.te.ui.forms.FormLayoutFactory; import org.eclipse.tcf.te.ui.trees.FilterDescriptor; @@ -172,7 +172,7 @@ public abstract class NewNodeWizardPage extends AbstractValidatingWizardPage { treeViewer.setLabelProvider(createDecoratingLabelProvider(new FSTreeElementLabelProvider())); treeViewer.setComparator(new FSTreeViewerSorter()); treeViewer.addFilter(new DirectoryFilter()); - IPeerModel peer = wizard.getPeer(); + IPeerNode peer = wizard.getPeer(); if (peer != null) { setInput(peer); } @@ -276,7 +276,7 @@ public abstract class NewNodeWizardPage extends AbstractValidatingWizardPage { * * @param peer The new target peer. */ - public void setPeer(IPeerModel peer) { + public void setPeer(IPeerNode peer) { if (peer != null) { setInput(peer); } @@ -345,7 +345,7 @@ public abstract class NewNodeWizardPage extends AbstractValidatingWizardPage { */ public FSTreeNode getInputDir() { NewNodeWizard wizard = getWizard(); - IPeerModel peer = wizard.getPeer(); + IPeerNode peer = wizard.getPeer(); if (peer == null) return null; final String text = folderControl.getEditFieldControlText(); if (text != null) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetPatternFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetPatternFilter.java index 148d55b61..be97de72f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetPatternFilter.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetPatternFilter.java @@ -11,7 +11,7 @@ package org.eclipse.tcf.te.tcf.filesystem.ui.internal.wizards; import org.eclipse.jface.viewers.Viewer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.ui.views.navigator.DelegatingLabelProvider; import org.eclipse.ui.dialogs.PatternFilter; @@ -37,7 +37,7 @@ public class TargetPatternFilter extends PatternFilter { */ @Override public boolean isElementSelectable(Object element) { - return element instanceof IPeerModel; + return element instanceof IPeerNode; } /* @@ -46,7 +46,7 @@ public class TargetPatternFilter extends PatternFilter { */ @Override protected boolean isLeafMatch(Viewer viewer, Object element) { - if ( element instanceof IPeerModel) { + if ( element instanceof IPeerNode) { String text = targetLabelProvider.getText(element); if (wordMatches(text)) { return true; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetSelectionPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetSelectionPage.java index 1bb6c1056..49b36bc30 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetSelectionPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.filesystem.ui/src/org/eclipse/tcf/te/tcf/filesystem/ui/internal/wizards/TargetSelectionPage.java @@ -36,9 +36,9 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.tcf.te.tcf.filesystem.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.navigator.ContentProvider; import org.eclipse.tcf.te.ui.activator.UIPlugin; @@ -99,12 +99,12 @@ public class TargetSelectionPage extends AbstractValidatingWizardPage { */ private void initialize() { // Refresh the information of remote services. - ILocatorModel model = Model.getModel(); + IPeerModel model = Model.getModel(); Assert.isNotNull(model); - IPeerModel[] peers = model.getPeers(); + IPeerNode[] peers = model.getPeers(); if (peers != null) { - ILocatorModelPeerNodeQueryService service = model.getService(ILocatorModelPeerNodeQueryService.class); - for (IPeerModel peer : peers) { + IPeerModelQueryService service = model.getService(IPeerModelQueryService.class); + for (IPeerNode peer : peers) { service.queryRemoteServices(peer); } } @@ -178,8 +178,8 @@ public class TargetSelectionPage extends AbstractValidatingWizardPage { ViewerFilter fsPeerFilter = new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { - if (element instanceof IPeerModel) { - IPeerModel peer = (IPeerModel) element; + if (element instanceof IPeerNode) { + IPeerNode peer = (IPeerNode) element; @@ -204,7 +204,7 @@ public class TargetSelectionPage extends AbstractValidatingWizardPage { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); // The tree is single selection, so look for the first element only. Object element = selection.getFirstElement(); - if (element instanceof IPeerModel) { + if (element instanceof IPeerNode) { // Double-click on a connection type is triggering the sub wizard getWizard().getContainer().showPage(getNextPage()); } @@ -220,7 +220,7 @@ public class TargetSelectionPage extends AbstractValidatingWizardPage { treeViewer.setInput(Model.getModel()); NewNodeWizard wizard = getWizard(); - IPeerModel peer = wizard.getPeer(); + IPeerNode peer = wizard.getPeer(); if (wizard.getPeer() != null) { treeViewer.setSelection(new StructuredSelection(peer), true); } @@ -267,8 +267,8 @@ public class TargetSelectionPage extends AbstractValidatingWizardPage { IStructuredSelection filteredTreeSelection = (IStructuredSelection) filteredTree .getViewer().getSelection(); NewNodeWizard wizard = getWizard(); - if (filteredTreeSelection.getFirstElement() instanceof IPeerModel) { - wizard.setPeer((IPeerModel) filteredTreeSelection.getFirstElement()); + if (filteredTreeSelection.getFirstElement() instanceof IPeerNode) { + wizard.setPeer((IPeerNode) filteredTreeSelection.getFirstElement()); } else { wizard.setPeer(null); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/plugin.xml index b83757d2d..3fbe5db4f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/plugin.xml @@ -1,231 +1,231 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
-<!-- Adapter factory contributions -->
- <extension point="org.eclipse.core.runtime.adapters">
- <factory
- adaptableType="org.eclipse.debug.core.ILaunch"
- class="org.eclipse.tcf.te.tcf.launch.core.internal.adapters.AdapterFactory">
- <adapter type="org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext"/>
- </factory>
- <factory
- adaptableType="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"
- class="org.eclipse.tcf.te.tcf.launch.core.internal.adapters.AdapterFactory">
- <adapter type="org.eclipse.debug.core.ILaunchConfiguration"/>
- <adapter type="org.eclipse.debug.core.ILaunchConfigurationWorkingCopy"/>
- </factory>
- <factory
- adaptableType="org.eclipse.tcf.protocol.IPeer"
- class="org.eclipse.tcf.te.tcf.launch.core.internal.adapters.AdapterFactory">
- <adapter type="org.eclipse.debug.core.ILaunchConfiguration"/>
- <adapter type="org.eclipse.debug.core.ILaunchConfigurationWorkingCopy"/>
- </factory>
- </extension>
-
-<!-- Service contributions -->
- <extension point="org.eclipse.tcf.te.runtime.services.services">
- <service
- id="org.eclipse.tcf.te.tcf.launch.services.persistence.import"
- class="org.eclipse.tcf.te.tcf.launch.core.internal.services.ImportPersistenceService">
- <serviceType class="org.eclipse.tcf.te.tcf.core.interfaces.IImportPersistenceService"/>
- </service>
- <service
- id="org.eclipse.tcf.te.tcf.launch.services.persistence.export"
- class="org.eclipse.tcf.te.tcf.launch.core.internal.services.ExportPersistenceService">
- <serviceType class="org.eclipse.tcf.te.tcf.core.interfaces.IExportPersistenceService"/>
- </service>
- <service
- id="org.eclipse.tcf.te.tcf.launch.services.pathmap"
- class="org.eclipse.tcf.te.tcf.launch.core.internal.services.PathMapService">
- <serviceType class="org.eclipse.tcf.te.tcf.core.interfaces.IPathMapService"/>
- </service>
- </extension>
-
-<!-- Launch Configuration Type contributions -->
- <extension point="org.eclipse.debug.core.launchConfigurationTypes">
- <launchConfigurationType
- id="org.eclipse.tcf.te.tcf.launch.type.remote.app"
- sourceLocatorId="org.eclipse.tcf.debug.SourceLocator"
- sourcePathComputerId="org.eclipse.tcf.te.launch.core.sourcePathComputer"
- delegate="org.eclipse.tcf.te.tcf.launch.core.delegates.LaunchConfigurationDelegate"
- modes="run,debug"
- name="%LaunchType.Remote.App.name"/>
- <launchConfigurationType
- id="org.eclipse.tcf.te.tcf.launch.type.attach"
- public="false"
- sourceLocatorId="org.eclipse.tcf.debug.SourceLocator"
- sourcePathComputerId="org.eclipse.tcf.te.launch.core.sourcePathComputer"
- delegate="org.eclipse.tcf.te.tcf.launch.core.delegates.LaunchConfigurationDelegate"
- modes="debug"
- name="%LaunchType.Attach.name"/>
- </extension>
-
-<!-- Launch Configuration Type Binding contributions -->
- <extension point="org.eclipse.tcf.te.launch.core.launchConfigTypeBindings">
- <launchConfigTypeBinding launchConfigTypeId="org.eclipse.tcf.te.tcf.launch.type.remote.app">
- <launchManagerDelegate
- id="org.eclipse.tcf.te.tcf.launch.type.remote.app.launchManagerDelegate"
- modes="run"/>
- <stepGroup
- id="org.eclipse.tcf.te.tcf.launch.type.remote.app.stepGroup"
- modes="run"/>
- <enablement>
- <with variable="context">
- <or>
- <adapt type="org.eclipse.core.resources.IResource">
- <test property="org.eclipse.core.resources.projectNature" value="org.eclipse.cdt.core.cnature"/>
- </adapt>
- <and>
- <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/>
- <or>
- <test property="org.eclipse.tcf.te.tcf.locator.hasOfflineService" value="Processes"/>
- <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="Processes"/>
- </or>
- </and>
- </or>
- </with>
- </enablement>
- </launchConfigTypeBinding>
- <launchConfigTypeBinding launchConfigTypeId="org.eclipse.tcf.te.tcf.launch.type.remote.app">
- <launchManagerDelegate
- id="org.eclipse.tcf.te.tcf.launch.type.remote.app.launchManagerDelegate"
- modes="debug"/>
- <stepGroup
- id="org.eclipse.tcf.te.tcf.launch.type.remote.app.stepGroup"
- modes="debug"/>
- <enablement>
- <with variable="context">
- <or>
- <adapt type="org.eclipse.core.resources.IResource">
- <test property="org.eclipse.core.resources.projectNature" value="org.eclipse.cdt.core.cnature"/>
- </adapt>
- <and>
- <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/>
- <or>
- <test property="org.eclipse.tcf.te.tcf.locator.hasOfflineService" value="Processes"/>
- <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="Processes"/>
- </or>
- <or>
- <test property="org.eclipse.tcf.te.tcf.locator.hasOfflineService" value="RunControl"/>
- <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="RunControl"/>
- </or>
- </and>
- </or>
- </with>
- </enablement>
- </launchConfigTypeBinding>
- <launchConfigTypeBinding launchConfigTypeId="org.eclipse.tcf.te.tcf.launch.type.attach">
- <launchManagerDelegate
- id="org.eclipse.tcf.te.tcf.launch.type.attach.launchManagerDelegate"
- modes="debug"/>
- <stepGroup
- id="org.eclipse.tcf.te.tcf.launch.type.attach.stepGroup"
- modes="debug"/>
- <enablement>
- <with variable="context">
- <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/>
- </with>
- </enablement>
- </launchConfigTypeBinding>
- </extension>
-
-<!-- Launch Manager Delegate contributions -->
- <extension point="org.eclipse.tcf.te.launch.core.launchManagerDelegates">
- <delegate
- class="org.eclipse.tcf.te.tcf.launch.core.lm.delegates.RemoteAppLaunchManagerDelegate"
- id="org.eclipse.tcf.te.tcf.launch.type.remote.app.launchManagerDelegate"/>
- <delegate
- class="org.eclipse.tcf.te.tcf.launch.core.lm.delegates.AttachLaunchManagerDelegate"
- id="org.eclipse.tcf.te.tcf.launch.type.attach.launchManagerDelegate"/>
- </extension>
-
-<!-- Launch Step Group contributions -->
- <extension point="org.eclipse.tcf.te.runtime.stepper.stepGroups">
- <stepGroup
- id="org.eclipse.tcf.te.tcf.launch.type.remote.app.stepGroup"
- label="%LaunchStepGroup.Remote.App.name"
- iterator="org.eclipse.tcf.te.launch.core.steps.iterators.LaunchContextIterator">
- <references>
- <reference id="org.eclipse.tcf.te.tcf.core.openChannelStep"/>
- <reference id="org.eclipse.tcf.te.tcf.launch.core.fileTransferStepGroup"/>
- <reference id="org.eclipse.tcf.te.tcf.launch.core.launchProcessStepGroup"/>
- <reference id="org.eclipse.tcf.te.tcf.launch.core.attachDebuggerStep">
- <enablement>
- <with variable="context">
- <test property="org.eclipse.tcf.te.launch.core.launchMode" value="debug"/>
- </with>
- </enablement>
- </reference>
- <reference id="org.eclipse.tcf.te.tcf.core.closeChannelStep"/>
- <reference id="org.eclipse.tcf.te.launch.core.removeLaunchStep">
- <enablement>
- <not>
- <test property="org.eclipse.tcf.te.launch.core.launchMode" value="debug"/>
- </not>
- </enablement>
- </reference>
- </references>
- </stepGroup>
- <stepGroup
- id="org.eclipse.tcf.te.tcf.launch.core.launchProcessStepGroup"
- label="%LaunchStepGroup.LaunchProcess.name"
- iterator="org.eclipse.tcf.te.tcf.launch.core.steps.iterators.LaunchProcessIterator">
- <references>
- <reference id="org.eclipse.tcf.te.tcf.locator.checkServiceStep">
- <parameter name="remoteService" value="Processes"/>
- </reference>
- <reference id="org.eclipse.tcf.te.tcf.locator.checkServiceStep">
- <parameter name="remoteService" value="RunControl"/>
- <enablement>
- <test property="org.eclipse.tcf.te.launch.core.launchMode" value="debug"/>
- </enablement>
- </reference>
- <reference id="org.eclipse.tcf.te.tcf.processes.core.launchProcessStep"/>
- <reference id="org.eclipse.tcf.te.tcf.processes.core.resumeProcessStep">
- <enablement>
- <test property="org.eclipse.tcf.te.launch.core.launchMode" value="debug"/>
- </enablement>
- </reference>
- </references>
- </stepGroup>
- <stepGroup
- id="org.eclipse.tcf.te.tcf.launch.core.fileTransferStepGroup"
- label="%LaunchStepGroup.FileTransfer.name"
- iterator="org.eclipse.tcf.te.tcf.launch.core.steps.iterators.FileTransferIterator">
- <references>
- <reference id="org.eclipse.tcf.te.tcf.locator.checkServiceStep">
- <parameter name="remoteService" value="FileSystem"/>
- </reference>
- <reference id="org.eclipse.tcf.te.tcf.filesystem.core.fileTransferStep"/>
- </references>
- </stepGroup>
-
- <stepGroup
- id="org.eclipse.tcf.te.tcf.launch.type.attach.stepGroup"
- label="%LaunchStepGroup.Attach.name"
- iterator="org.eclipse.tcf.te.launch.core.steps.iterators.LaunchContextIterator">
- <references>
- <reference id="org.eclipse.tcf.te.tcf.core.openChannelStep"/>
- <reference id="org.eclipse.tcf.te.tcf.locator.checkServiceStep">
- <parameter name="remoteService" value="RunControl"/>
- </reference>
- <reference id="org.eclipse.tcf.te.tcf.launch.core.attachDebuggerStep">
- <enablement>
- <test property="org.eclipse.tcf.te.launch.core.launchMode" value="debug"/>
- </enablement>
- </reference>
- <reference id="org.eclipse.tcf.te.tcf.core.closeChannelStep"/>
- </references>
- </stepGroup>
- </extension>
-
-<!-- Launch Step contributions -->
- <extension point="org.eclipse.tcf.te.runtime.stepper.steps">
- <step
- id="org.eclipse.tcf.te.tcf.launch.core.attachDebuggerStep"
- class="org.eclipse.tcf.te.tcf.launch.core.steps.AttachDebuggerStep"
- label="%LaunchStep.AttachDebugger.name"/>
- </extension>
-
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<plugin> + +<!-- Adapter factory contributions --> + <extension point="org.eclipse.core.runtime.adapters"> + <factory + adaptableType="org.eclipse.debug.core.ILaunch" + class="org.eclipse.tcf.te.tcf.launch.core.internal.adapters.AdapterFactory"> + <adapter type="org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext"/> + </factory> + <factory + adaptableType="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode" + class="org.eclipse.tcf.te.tcf.launch.core.internal.adapters.AdapterFactory"> + <adapter type="org.eclipse.debug.core.ILaunchConfiguration"/> + <adapter type="org.eclipse.debug.core.ILaunchConfigurationWorkingCopy"/> + </factory> + <factory + adaptableType="org.eclipse.tcf.protocol.IPeer" + class="org.eclipse.tcf.te.tcf.launch.core.internal.adapters.AdapterFactory"> + <adapter type="org.eclipse.debug.core.ILaunchConfiguration"/> + <adapter type="org.eclipse.debug.core.ILaunchConfigurationWorkingCopy"/> + </factory> + </extension> + +<!-- Service contributions --> + <extension point="org.eclipse.tcf.te.runtime.services.services"> + <service + id="org.eclipse.tcf.te.tcf.launch.services.persistence.import" + class="org.eclipse.tcf.te.tcf.launch.core.internal.services.ImportPersistenceService"> + <serviceType class="org.eclipse.tcf.te.tcf.core.interfaces.IImportPersistenceService"/> + </service> + <service + id="org.eclipse.tcf.te.tcf.launch.services.persistence.export" + class="org.eclipse.tcf.te.tcf.launch.core.internal.services.ExportPersistenceService"> + <serviceType class="org.eclipse.tcf.te.tcf.core.interfaces.IExportPersistenceService"/> + </service> + <service + id="org.eclipse.tcf.te.tcf.launch.services.pathmap" + class="org.eclipse.tcf.te.tcf.launch.core.internal.services.PathMapService"> + <serviceType class="org.eclipse.tcf.te.tcf.core.interfaces.IPathMapService"/> + </service> + </extension> + +<!-- Launch Configuration Type contributions --> + <extension point="org.eclipse.debug.core.launchConfigurationTypes"> + <launchConfigurationType + id="org.eclipse.tcf.te.tcf.launch.type.remote.app" + sourceLocatorId="org.eclipse.tcf.debug.SourceLocator" + sourcePathComputerId="org.eclipse.tcf.te.launch.core.sourcePathComputer" + delegate="org.eclipse.tcf.te.tcf.launch.core.delegates.LaunchConfigurationDelegate" + modes="run,debug" + name="%LaunchType.Remote.App.name"/> + <launchConfigurationType + id="org.eclipse.tcf.te.tcf.launch.type.attach" + public="false" + sourceLocatorId="org.eclipse.tcf.debug.SourceLocator" + sourcePathComputerId="org.eclipse.tcf.te.launch.core.sourcePathComputer" + delegate="org.eclipse.tcf.te.tcf.launch.core.delegates.LaunchConfigurationDelegate" + modes="debug" + name="%LaunchType.Attach.name"/> + </extension> + +<!-- Launch Configuration Type Binding contributions --> + <extension point="org.eclipse.tcf.te.launch.core.launchConfigTypeBindings"> + <launchConfigTypeBinding launchConfigTypeId="org.eclipse.tcf.te.tcf.launch.type.remote.app"> + <launchManagerDelegate + id="org.eclipse.tcf.te.tcf.launch.type.remote.app.launchManagerDelegate" + modes="run"/> + <stepGroup + id="org.eclipse.tcf.te.tcf.launch.type.remote.app.stepGroup" + modes="run"/> + <enablement> + <with variable="context"> + <or> + <adapt type="org.eclipse.core.resources.IResource"> + <test property="org.eclipse.core.resources.projectNature" value="org.eclipse.cdt.core.cnature"/> + </adapt> + <and> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> + <or> + <test property="org.eclipse.tcf.te.tcf.locator.hasOfflineService" value="Processes"/> + <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="Processes"/> + </or> + </and> + </or> + </with> + </enablement> + </launchConfigTypeBinding> + <launchConfigTypeBinding launchConfigTypeId="org.eclipse.tcf.te.tcf.launch.type.remote.app"> + <launchManagerDelegate + id="org.eclipse.tcf.te.tcf.launch.type.remote.app.launchManagerDelegate" + modes="debug"/> + <stepGroup + id="org.eclipse.tcf.te.tcf.launch.type.remote.app.stepGroup" + modes="debug"/> + <enablement> + <with variable="context"> + <or> + <adapt type="org.eclipse.core.resources.IResource"> + <test property="org.eclipse.core.resources.projectNature" value="org.eclipse.cdt.core.cnature"/> + </adapt> + <and> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> + <or> + <test property="org.eclipse.tcf.te.tcf.locator.hasOfflineService" value="Processes"/> + <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="Processes"/> + </or> + <or> + <test property="org.eclipse.tcf.te.tcf.locator.hasOfflineService" value="RunControl"/> + <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="RunControl"/> + </or> + </and> + </or> + </with> + </enablement> + </launchConfigTypeBinding> + <launchConfigTypeBinding launchConfigTypeId="org.eclipse.tcf.te.tcf.launch.type.attach"> + <launchManagerDelegate + id="org.eclipse.tcf.te.tcf.launch.type.attach.launchManagerDelegate" + modes="debug"/> + <stepGroup + id="org.eclipse.tcf.te.tcf.launch.type.attach.stepGroup" + modes="debug"/> + <enablement> + <with variable="context"> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> + </with> + </enablement> + </launchConfigTypeBinding> + </extension> + +<!-- Launch Manager Delegate contributions --> + <extension point="org.eclipse.tcf.te.launch.core.launchManagerDelegates"> + <delegate + class="org.eclipse.tcf.te.tcf.launch.core.lm.delegates.RemoteAppLaunchManagerDelegate" + id="org.eclipse.tcf.te.tcf.launch.type.remote.app.launchManagerDelegate"/> + <delegate + class="org.eclipse.tcf.te.tcf.launch.core.lm.delegates.AttachLaunchManagerDelegate" + id="org.eclipse.tcf.te.tcf.launch.type.attach.launchManagerDelegate"/> + </extension> + +<!-- Launch Step Group contributions --> + <extension point="org.eclipse.tcf.te.runtime.stepper.stepGroups"> + <stepGroup + id="org.eclipse.tcf.te.tcf.launch.type.remote.app.stepGroup" + label="%LaunchStepGroup.Remote.App.name" + iterator="org.eclipse.tcf.te.launch.core.steps.iterators.LaunchContextIterator"> + <references> + <reference id="org.eclipse.tcf.te.tcf.core.openChannelStep"/> + <reference id="org.eclipse.tcf.te.tcf.launch.core.fileTransferStepGroup"/> + <reference id="org.eclipse.tcf.te.tcf.launch.core.launchProcessStepGroup"/> + <reference id="org.eclipse.tcf.te.tcf.launch.core.attachDebuggerStep"> + <enablement> + <with variable="context"> + <test property="org.eclipse.tcf.te.launch.core.launchMode" value="debug"/> + </with> + </enablement> + </reference> + <reference id="org.eclipse.tcf.te.tcf.core.closeChannelStep"/> + <reference id="org.eclipse.tcf.te.launch.core.removeLaunchStep"> + <enablement> + <not> + <test property="org.eclipse.tcf.te.launch.core.launchMode" value="debug"/> + </not> + </enablement> + </reference> + </references> + </stepGroup> + <stepGroup + id="org.eclipse.tcf.te.tcf.launch.core.launchProcessStepGroup" + label="%LaunchStepGroup.LaunchProcess.name" + iterator="org.eclipse.tcf.te.tcf.launch.core.steps.iterators.LaunchProcessIterator"> + <references> + <reference id="org.eclipse.tcf.te.tcf.locator.checkServiceStep"> + <parameter name="remoteService" value="Processes"/> + </reference> + <reference id="org.eclipse.tcf.te.tcf.locator.checkServiceStep"> + <parameter name="remoteService" value="RunControl"/> + <enablement> + <test property="org.eclipse.tcf.te.launch.core.launchMode" value="debug"/> + </enablement> + </reference> + <reference id="org.eclipse.tcf.te.tcf.processes.core.launchProcessStep"/> + <reference id="org.eclipse.tcf.te.tcf.processes.core.resumeProcessStep"> + <enablement> + <test property="org.eclipse.tcf.te.launch.core.launchMode" value="debug"/> + </enablement> + </reference> + </references> + </stepGroup> + <stepGroup + id="org.eclipse.tcf.te.tcf.launch.core.fileTransferStepGroup" + label="%LaunchStepGroup.FileTransfer.name" + iterator="org.eclipse.tcf.te.tcf.launch.core.steps.iterators.FileTransferIterator"> + <references> + <reference id="org.eclipse.tcf.te.tcf.locator.checkServiceStep"> + <parameter name="remoteService" value="FileSystem"/> + </reference> + <reference id="org.eclipse.tcf.te.tcf.filesystem.core.fileTransferStep"/> + </references> + </stepGroup> + + <stepGroup + id="org.eclipse.tcf.te.tcf.launch.type.attach.stepGroup" + label="%LaunchStepGroup.Attach.name" + iterator="org.eclipse.tcf.te.launch.core.steps.iterators.LaunchContextIterator"> + <references> + <reference id="org.eclipse.tcf.te.tcf.core.openChannelStep"/> + <reference id="org.eclipse.tcf.te.tcf.locator.checkServiceStep"> + <parameter name="remoteService" value="RunControl"/> + </reference> + <reference id="org.eclipse.tcf.te.tcf.launch.core.attachDebuggerStep"> + <enablement> + <test property="org.eclipse.tcf.te.launch.core.launchMode" value="debug"/> + </enablement> + </reference> + <reference id="org.eclipse.tcf.te.tcf.core.closeChannelStep"/> + </references> + </stepGroup> + </extension> + +<!-- Launch Step contributions --> + <extension point="org.eclipse.tcf.te.runtime.stepper.steps"> + <step + id="org.eclipse.tcf.te.tcf.launch.core.attachDebuggerStep" + class="org.eclipse.tcf.te.tcf.launch.core.steps.AttachDebuggerStep" + label="%LaunchStep.AttachDebugger.name"/> + </extension> + +</plugin> diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/delegates/Launch.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/delegates/Launch.java index d48ec0682..e69a77847 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/delegates/Launch.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/delegates/Launch.java @@ -32,7 +32,7 @@ import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.core.interfaces.IChannelManager; import org.eclipse.tcf.te.tcf.core.interfaces.IPathMapGeneratorService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Default tcf launch implementation. @@ -70,7 +70,7 @@ public final class Launch extends TCFLaunch { * * @param node The peer model node. Must not be <code>null</code>. */ - public void attachDebugger(IPeerModel node) { + public void attachDebugger(IPeerNode node) { Assert.isNotNull(node); final String name = node.getPeer().getName(); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/adapters/AdapterFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/adapters/AdapterFactory.java index e8c6849ba..3db3549ff 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/adapters/AdapterFactory.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/adapters/AdapterFactory.java @@ -23,8 +23,8 @@ import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.interfaces.IDisposable; import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; /** @@ -97,12 +97,12 @@ public class AdapterFactory implements IAdapterFactory { return adapter; } } - else if (adaptableObject instanceof IPeerModel) { + else if (adaptableObject instanceof IPeerNode) { if (ILaunchConfiguration.class.equals(adapterType)) { - return attachLaunchConfigAdapter.getAttachLaunchConfig((IPeerModel)adaptableObject); + return attachLaunchConfigAdapter.getAttachLaunchConfig((IPeerNode)adaptableObject); } if (ILaunchConfigurationWorkingCopy.class.equals(adapterType)) { - ILaunchConfiguration launchConfig = attachLaunchConfigAdapter.getAttachLaunchConfig((IPeerModel)adaptableObject); + ILaunchConfiguration launchConfig = attachLaunchConfigAdapter.getAttachLaunchConfig((IPeerNode)adaptableObject); try { return launchConfig.getWorkingCopy(); } @@ -112,21 +112,21 @@ public class AdapterFactory implements IAdapterFactory { } } else if (adaptableObject instanceof IPeer) { - final ILocatorModelLookupService service = Model.getModel().getService(ILocatorModelLookupService.class); - final AtomicReference<IPeerModel> peerModel = new AtomicReference<IPeerModel>(); + final IPeerModelLookupService service = Model.getModel().getService(IPeerModelLookupService.class); + final AtomicReference<IPeerNode> peerNode = new AtomicReference<IPeerNode>(); if (service != null) { Runnable runnable = new Runnable() { @Override public void run() { - peerModel.set(service.lkupPeerModelById(((IPeer)adaptableObject).getID())); + peerNode.set(service.lkupPeerModelById(((IPeer)adaptableObject).getID())); } }; if (Protocol.isDispatchThread()) runnable.run(); else Protocol.invokeAndWait(runnable); } - if (peerModel.get() != null) return getAdapter(peerModel.get(), adapterType); + if (peerNode.get() != null) return getAdapter(peerNode.get(), adapterType); } return null; } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/adapters/AttachLaunchConfigAdapter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/adapters/AttachLaunchConfigAdapter.java index cdf6b882c..a6dd5ae42 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/adapters/AttachLaunchConfigAdapter.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/adapters/AttachLaunchConfigAdapter.java @@ -21,14 +21,14 @@ import org.eclipse.tcf.te.launch.core.selection.LaunchSelection; import org.eclipse.tcf.te.launch.core.selection.RemoteSelectionContext; import org.eclipse.tcf.te.launch.core.selection.interfaces.ILaunchSelection; import org.eclipse.tcf.te.tcf.launch.core.interfaces.ILaunchTypes; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * AttachLaunchConfigAdapter */ public class AttachLaunchConfigAdapter { - public ILaunchConfiguration getAttachLaunchConfig(IPeerModel peer) { + public ILaunchConfiguration getAttachLaunchConfig(IPeerNode peer) { ILaunchConfigurationType launchConfigType = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(ILaunchTypes.ATTACH); ILaunchSelection launchSelection = new LaunchSelection(ILaunchManager.DEBUG_MODE, new RemoteSelectionContext(peer, true)); ILaunchManagerDelegate delegate = LaunchManager.getInstance().getLaunchManagerDelegate(launchConfigType, ILaunchManager.DEBUG_MODE); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/services/ExportPersistenceService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/services/ExportPersistenceService.java index ea67e28fa..6cd0d6476 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/services/ExportPersistenceService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/services/ExportPersistenceService.java @@ -23,7 +23,7 @@ import org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistenceDelegate; import org.eclipse.tcf.te.runtime.persistence.services.URIPersistenceService; import org.eclipse.tcf.te.tcf.core.interfaces.IExportPersistenceService; import org.eclipse.tcf.te.tcf.launch.core.interfaces.ILaunchTypes; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Persistence service implementation for import/export. @@ -46,8 +46,8 @@ public class ExportPersistenceService extends URIPersistenceService implements I throw new IOException("The persistence delegate for context '" + context.getClass().getName() + "' cannot be determined."); //$NON-NLS-1$ //$NON-NLS-2$ } - if (context instanceof IPeerModel) { - final IPeerModel node = (IPeerModel)context; + if (context instanceof IPeerNode) { + final IPeerNode node = (IPeerNode)context; ILaunchConfiguration launchConfig = (ILaunchConfiguration)Platform.getAdapterManager().getAdapter(node, ILaunchConfiguration.class); if (launchConfig != null) { IPersistenceDelegate launchDelegate = PersistenceManager.getInstance().getDelegate(launchConfig, String.class); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/services/PathMapService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/services/PathMapService.java index 353ff01ed..c79c4bf52 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/services/PathMapService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/internal/services/PathMapService.java @@ -41,8 +41,8 @@ import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.core.interfaces.IPathMapGeneratorService; import org.eclipse.tcf.te.tcf.core.interfaces.IPathMapService; import org.eclipse.tcf.te.tcf.launch.core.activator.CoreBundleActivator; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; /** * Path map service implementation. @@ -307,8 +307,8 @@ public class PathMapService extends AbstractService implements IPathMapService { Assert.isNotNull(callback); IPeer peer = context instanceof IPeer ? (IPeer)context : null; - if (peer == null && context instanceof IPeerModel) peer = ((IPeerModel)context).getPeer(); - if (peer == null && context instanceof IPeerModelProvider && ((IPeerModelProvider)context).getPeerModel() != null) peer = ((IPeerModelProvider)context).getPeerModel().getPeer(); + if (peer == null && context instanceof IPeerNode) peer = ((IPeerNode)context).getPeer(); + if (peer == null && context instanceof IPeerNodeProvider && ((IPeerNodeProvider)context).getPeerModel() != null) peer = ((IPeerNodeProvider)context).getPeerModel().getPeer(); if (peer != null) { final IChannel channel = Tcf.getChannelManager().getChannel(peer); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/AbstractTcfLaunchStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/AbstractTcfLaunchStep.java index 9b5b73147..0dfa6691b 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/AbstractTcfLaunchStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/AbstractTcfLaunchStep.java @@ -15,7 +15,7 @@ import org.eclipse.tcf.te.launch.core.steps.AbstractLaunchStep; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Abstract TCF launch step implementation. @@ -30,16 +30,16 @@ public abstract class AbstractTcfLaunchStep extends AbstractLaunchStep { * @param fullQualifiedId The full qualfied id for this step. Must not be <code>null</code>. * @return The active peer model context. */ - protected IPeerModel getActivePeerModelContext(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId) { + protected IPeerNode getActivePeerModelContext(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId) { Object activeContext = getActiveContext(context, data, fullQualifiedId); - IPeerModel peerModel = null; - if (activeContext instanceof IPeerModel) - return (IPeerModel)activeContext; + IPeerNode peerNode = null; + if (activeContext instanceof IPeerNode) + return (IPeerNode)activeContext; if (activeContext instanceof IAdaptable) - peerModel = (IPeerModel)((IAdaptable)activeContext).getAdapter(IPeerModel.class); - if (peerModel == null) - peerModel = (IPeerModel)Platform.getAdapterManager().getAdapter(activeContext, IPeerModel.class); + peerNode = (IPeerNode)((IAdaptable)activeContext).getAdapter(IPeerNode.class); + if (peerNode == null) + peerNode = (IPeerNode)Platform.getAdapterManager().getAdapter(activeContext, IPeerNode.class); - return peerModel; + return peerNode; } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/iterators/AbstractTcfLaunchStepGroupIterator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/iterators/AbstractTcfLaunchStepGroupIterator.java index 6f0a8b272..10bc9d76e 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/iterators/AbstractTcfLaunchStepGroupIterator.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.core/src/org/eclipse/tcf/te/tcf/launch/core/steps/iterators/AbstractTcfLaunchStepGroupIterator.java @@ -16,7 +16,7 @@ import org.eclipse.tcf.te.launch.core.steps.iterators.AbstractLaunchStepGroupIte import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Abstract TCF launch step group iterator. @@ -31,16 +31,16 @@ public abstract class AbstractTcfLaunchStepGroupIterator extends AbstractLaunchS * @param fullQualifiedId The full qualfied id for this step. Must not be <code>null</code>. * @return The active peer model context. */ - protected IPeerModel getActivePeerModelContext(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId) { + protected IPeerNode getActivePeerModelContext(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId) { Object activeContext = getActiveContext(context, data, fullQualifiedId); - IPeerModel peerModel = null; - if (activeContext instanceof IPeerModel) - return (IPeerModel)activeContext; + IPeerNode peerNode = null; + if (activeContext instanceof IPeerNode) + return (IPeerNode)activeContext; if (activeContext instanceof IAdaptable) - peerModel = (IPeerModel)((IAdaptable)activeContext).getAdapter(IPeerModel.class); - if (peerModel == null) - peerModel = (IPeerModel)Platform.getAdapterManager().getAdapter(activeContext, IPeerModel.class); + peerNode = (IPeerNode)((IAdaptable)activeContext).getAdapter(IPeerNode.class); + if (peerNode == null) + peerNode = (IPeerNode)Platform.getAdapterManager().getAdapter(activeContext, IPeerNode.class); - return peerModel; + return peerNode; } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/plugin.xml index 3a15b2b39..1a2c49a1e 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/plugin.xml @@ -11,7 +11,7 @@ bundleId="org.eclipse.tcf.te.runtime.services" class="org.eclipse.tcf.te.runtime.services.interfaces.IDebugService"/> <enablement> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </enablement> </service> </extension> @@ -117,7 +117,7 @@ insertAfter="last"> <enablement> <with variable="activeEditorInput"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="Processes"/> </adapt> </with> @@ -129,7 +129,7 @@ insertBefore="org.eclipse.tcf.te.launch.ui.LaunchEditorPage"> <enablement> <with variable="activeEditorInput"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="org.eclipse.tcf.te.core.canAdaptTo" value="org.eclipse.debug.core.ILaunchConfiguration" args="forceAdapterLoad"/> </adapt> </with> @@ -141,7 +141,7 @@ insertBefore="org.eclipse.tcf.te.launch.ui.SourceLookupEditorPage,org.eclipse.tcf.te.launch.ui.LaunchEditorPage"> <enablement> <with variable="activeEditorInput"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="PathMap"/> </adapt> </with> @@ -153,7 +153,7 @@ insertBefore="org.eclipse.tcf.te.tcf.launch.ui.PathMapEditorPage,org.eclipse.tcf.te.launch.ui.SourceLookupEditorPage,org.eclipse.tcf.te.launch.ui.LaunchEditorPage"> <enablement> <with variable="activeEditorInput"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="MemoryMap"/> </adapt> </with> @@ -183,7 +183,7 @@ labelProvider="org.eclipse.tcf.te.launch.ui.viewer.LaunchTreeLabelProvider" priority="lowest"> <triggerPoints> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </triggerPoints> <possibleChildren> <instanceof value="org.eclipse.tcf.te.launch.ui.model.LaunchNode"/> @@ -218,7 +218,7 @@ <with variable="selection"> <count value="1"/> <iterate operator="and" ifEmpty="false"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <and> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="Diagnostics"/> <or> diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/AbstractTcfLaunchTabContainerEditorPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/AbstractTcfLaunchTabContainerEditorPage.java index de8dee592..f8cc02c90 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/AbstractTcfLaunchTabContainerEditorPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/AbstractTcfLaunchTabContainerEditorPage.java @@ -23,7 +23,7 @@ import org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistenceDelegate; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IPropertiesAccessService; import org.eclipse.tcf.te.tcf.launch.ui.activator.UIPlugin; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * TCF launch configuration tab container page implementation. @@ -41,8 +41,8 @@ public abstract class AbstractTcfLaunchTabContainerEditorPage extends AbstractLa * @param input The editor input. * @return The peer model. */ - public IPeerModel getPeerModel(Object input) { - return (IPeerModel) ((IAdaptable) input).getAdapter(IPeerModel.class); + public IPeerNode getPeerModel(Object input) { + return (IPeerNode) ((IAdaptable) input).getAdapter(IPeerNode.class); } /* (non-Javadoc) @@ -61,24 +61,24 @@ public abstract class AbstractTcfLaunchTabContainerEditorPage extends AbstractLa /** * Get the launch configuration from the peer model. * - * @param peerModel The peer model. + * @param peerNode The peer model. * @return The launch configuration. */ - public static ILaunchConfigurationWorkingCopy getLaunchConfig(final IPeerModel peerModel) { + public static ILaunchConfigurationWorkingCopy getLaunchConfig(final IPeerNode peerNode) { ILaunchConfigurationWorkingCopy wc = null; - if (peerModel != null) { - IPropertiesAccessService service = ServiceManager.getInstance().getService(peerModel, IPropertiesAccessService.class); + if (peerNode != null) { + IPropertiesAccessService service = ServiceManager.getInstance().getService(peerNode, IPropertiesAccessService.class); Assert.isNotNull(service); - if (service.getProperty(peerModel, PROP_LAUNCH_CONFIG_WC) instanceof ILaunchConfigurationWorkingCopy) { - wc = (ILaunchConfigurationWorkingCopy) service.getProperty(peerModel, PROP_LAUNCH_CONFIG_WC); + if (service.getProperty(peerNode, PROP_LAUNCH_CONFIG_WC) instanceof ILaunchConfigurationWorkingCopy) { + wc = (ILaunchConfigurationWorkingCopy) service.getProperty(peerNode, PROP_LAUNCH_CONFIG_WC); } else { - wc = (ILaunchConfigurationWorkingCopy) Platform.getAdapterManager().getAdapter(peerModel, ILaunchConfigurationWorkingCopy.class); + wc = (ILaunchConfigurationWorkingCopy) Platform.getAdapterManager().getAdapter(peerNode, ILaunchConfigurationWorkingCopy.class); if (wc == null) { - wc = (ILaunchConfigurationWorkingCopy) Platform.getAdapterManager().loadAdapter(peerModel, "org.eclipse.debug.core.ILaunchConfigurationWorkingCopy"); //$NON-NLS-1$ + wc = (ILaunchConfigurationWorkingCopy) Platform.getAdapterManager().loadAdapter(peerNode, "org.eclipse.debug.core.ILaunchConfigurationWorkingCopy"); //$NON-NLS-1$ } Assert.isNotNull(wc); - service.setProperty(peerModel, PROP_LAUNCH_CONFIG_WC, wc); + service.setProperty(peerNode, PROP_LAUNCH_CONFIG_WC, wc); IPersistenceDelegate delegate = PersistenceManager.getInstance().getDelegate(wc, String.class); String launchConfigAttributes = null; try { @@ -87,7 +87,7 @@ public abstract class AbstractTcfLaunchTabContainerEditorPage extends AbstractLa catch (Exception e) { /* ignored on purpose */ } - service.setProperty(peerModel, PROP_ORIGINAL_LAUNCH_CONFIG_ATTRIBUTES, launchConfigAttributes); + service.setProperty(peerNode, PROP_ORIGINAL_LAUNCH_CONFIG_ATTRIBUTES, launchConfigAttributes); } } return wc; @@ -119,10 +119,10 @@ public abstract class AbstractTcfLaunchTabContainerEditorPage extends AbstractLa if (wc != null && checkLaunchConfigDirty()) { getLaunchConfigurationTab().performApply(wc); try { - IPeerModel peerModel = getPeerModel(getEditorInput()); - IPropertiesAccessService service = ServiceManager.getInstance().getService(peerModel, IPropertiesAccessService.class); + IPeerNode peerNode = getPeerModel(getEditorInput()); + IPropertiesAccessService service = ServiceManager.getInstance().getService(peerNode, IPropertiesAccessService.class); Assert.isNotNull(service); - service.setProperty(peerModel, PROP_LAUNCH_CONFIG_WC, null); + service.setProperty(peerNode, PROP_LAUNCH_CONFIG_WC, null); wc.doSave(); onPostSave(wc); checkLaunchConfigDirty(); @@ -141,13 +141,13 @@ public abstract class AbstractTcfLaunchTabContainerEditorPage extends AbstractLa */ public boolean checkLaunchConfigDirty() { boolean dirty = false; - IPeerModel peerModel = getPeerModel(getEditorInput()); - IPropertiesAccessService service = ServiceManager.getInstance().getService(peerModel, IPropertiesAccessService.class); - String oldLaunchConfigAttributes = (String) service.getProperty(peerModel, PROP_ORIGINAL_LAUNCH_CONFIG_ATTRIBUTES); - IPersistenceDelegate delegate = PersistenceManager.getInstance().getDelegate(getLaunchConfig(peerModel), String.class); + IPeerNode peerNode = getPeerModel(getEditorInput()); + IPropertiesAccessService service = ServiceManager.getInstance().getService(peerNode, IPropertiesAccessService.class); + String oldLaunchConfigAttributes = (String) service.getProperty(peerNode, PROP_ORIGINAL_LAUNCH_CONFIG_ATTRIBUTES); + IPersistenceDelegate delegate = PersistenceManager.getInstance().getDelegate(getLaunchConfig(peerNode), String.class); String launchConfigAttributes = null; try { - launchConfigAttributes = (String) delegate.write(getLaunchConfig(peerModel), String.class); + launchConfigAttributes = (String) delegate.write(getLaunchConfig(peerNode), String.class); dirty = !launchConfigAttributes.equals(oldLaunchConfigAttributes); } catch (Exception e) { @@ -164,9 +164,9 @@ public abstract class AbstractTcfLaunchTabContainerEditorPage extends AbstractLa if (isAutoSave()) { final ILaunchConfigurationWorkingCopy wc = getLaunchConfig(getPeerModel(getEditorInput())); if (wc != null && dirty) { - IPeerModel peerModel = getPeerModel(getEditorInput()); - IPropertiesAccessService service = ServiceManager.getInstance().getService(peerModel, IPropertiesAccessService.class); - service.setProperty(peerModel, PROP_LAUNCH_CONFIG_WC, null); + IPeerNode peerNode = getPeerModel(getEditorInput()); + IPropertiesAccessService service = ServiceManager.getInstance().getService(peerNode, IPropertiesAccessService.class); + service.setProperty(peerNode, PROP_LAUNCH_CONFIG_WC, null); try { wc.doSave(); onPostSave(wc); @@ -213,10 +213,10 @@ public abstract class AbstractTcfLaunchTabContainerEditorPage extends AbstractLa @Override public void dispose() { super.dispose(); - IPeerModel peerModel = getPeerModel(getEditorInput()); - IPropertiesAccessService service = ServiceManager.getInstance().getService(peerModel, IPropertiesAccessService.class); - service.setProperty(peerModel, PROP_ORIGINAL_LAUNCH_CONFIG_ATTRIBUTES, null); - service.setProperty(peerModel, PROP_LAUNCH_CONFIG_WC, null); + IPeerNode peerNode = getPeerModel(getEditorInput()); + IPropertiesAccessService service = ServiceManager.getInstance().getService(peerNode, IPropertiesAccessService.class); + service.setProperty(peerNode, PROP_ORIGINAL_LAUNCH_CONFIG_ATTRIBUTES, null); + service.setProperty(peerNode, PROP_LAUNCH_CONFIG_WC, null); DebugPlugin.getDefault().getLaunchManager().removeLaunchConfigurationListener(this); launchConfigListener = null; } @@ -241,12 +241,12 @@ public abstract class AbstractTcfLaunchTabContainerEditorPage extends AbstractLa @Override public void launchConfigurationChanged(ILaunchConfiguration configuration) { if (!(configuration instanceof ILaunchConfigurationWorkingCopy)) { - IPeerModel peerModel = getPeerModel(getEditorInput()); - IPropertiesAccessService service = ServiceManager.getInstance().getService(peerModel, IPropertiesAccessService.class); - ILaunchConfigurationWorkingCopy wc = (ILaunchConfigurationWorkingCopy) service.getProperty(peerModel, PROP_LAUNCH_CONFIG_WC); + IPeerNode peerNode = getPeerModel(getEditorInput()); + IPropertiesAccessService service = ServiceManager.getInstance().getService(peerNode, IPropertiesAccessService.class); + ILaunchConfigurationWorkingCopy wc = (ILaunchConfigurationWorkingCopy) service.getProperty(peerNode, PROP_LAUNCH_CONFIG_WC); if (wc != null && configuration.getName().equals(wc.getName())) { - service.setProperty(peerModel, PROP_ORIGINAL_LAUNCH_CONFIG_ATTRIBUTES, null); - service.setProperty(peerModel, PROP_LAUNCH_CONFIG_WC, null); + service.setProperty(peerNode, PROP_ORIGINAL_LAUNCH_CONFIG_ATTRIBUTES, null); + service.setProperty(peerNode, PROP_LAUNCH_CONFIG_WC, null); ExecutorsUtil.executeInUI(new Runnable() { @Override public void run() { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/PathMapEditorPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/PathMapEditorPage.java index e44294b28..4835b086f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/PathMapEditorPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/PathMapEditorPage.java @@ -27,7 +27,7 @@ import org.eclipse.tcf.te.tcf.launch.ui.activator.UIPlugin; import org.eclipse.tcf.te.tcf.launch.ui.editor.tabs.PathMapTab; import org.eclipse.tcf.te.tcf.launch.ui.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.launch.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * TCF path map launch configuration tab container page implementation. @@ -49,18 +49,18 @@ public class PathMapEditorPage extends AbstractTcfLaunchTabContainerEditorPage { protected void onPostSave(ILaunchConfiguration config) { Assert.isNotNull(config); - final IPeerModel peerModel = getPeerModel(getEditorInput()); - if (peerModel != null && peerModel.getPeer() != null) { - IPathMapService service = ServiceManager.getInstance().getService(peerModel.getPeer(), IPathMapService.class); + final IPeerNode peerNode = getPeerModel(getEditorInput()); + if (peerNode != null && peerNode.getPeer() != null) { + IPathMapService service = ServiceManager.getInstance().getService(peerNode.getPeer(), IPathMapService.class); if (service != null) { - service.applyPathMap(peerModel.getPeer(), new Callback() { + service.applyPathMap(peerNode.getPeer(), new Callback() { @Override protected void internalDone(Object caller, IStatus status) { if (status != null && status.getSeverity() == IStatus.ERROR) { IStatus status2 = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(), - NLS.bind(Messages.PathMapEditorPage_error_apply, peerModel.getName(), status.getMessage()), + NLS.bind(Messages.PathMapEditorPage_error_apply, peerNode.getName(), status.getMessage()), status.getException()); - IStatusHandler[] handlers = StatusHandlerManager.getInstance().getHandler(peerModel); + IStatusHandler[] handlers = StatusHandlerManager.getInstance().getHandler(peerNode); if (handlers.length > 0) { IPropertiesContainer data = new PropertiesContainer(); data.setProperty(IStatusHandlerConstants.PROPERTY_TITLE, Messages.PathMapEditorPage_error_title); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/tabs/PathMapTab.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/tabs/PathMapTab.java index 679cd1c42..d7f0bda3a 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/tabs/PathMapTab.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/editor/tabs/PathMapTab.java @@ -20,7 +20,7 @@ import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.tcf.core.interfaces.IPathMapGeneratorService; import org.eclipse.tcf.te.tcf.launch.ui.editor.AbstractTcfLaunchTabContainerEditorPage; import org.eclipse.tcf.te.tcf.launch.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Customized TCF path map launch configuration tab implementation to work better @@ -92,11 +92,11 @@ public class PathMapTab extends TCFPathMapTab { super.initializePathMap(map, config); IModelNode context = LaunchContextsPersistenceDelegate.getFirstLaunchContext(config); - if (context instanceof IPeerModel) { - IPeerModel peerModel = (IPeerModel)context; - IPathMapGeneratorService service = ServiceManager.getInstance().getService(peerModel, IPathMapGeneratorService.class); + if (context instanceof IPeerNode) { + IPeerNode peerNode = (IPeerNode)context; + IPathMapGeneratorService service = ServiceManager.getInstance().getService(peerNode, IPathMapGeneratorService.class); if (service != null) { - IPathMap.PathMapRule[] rules = service.getPathMap(peerModel); + IPathMap.PathMapRule[] rules = service.getPathMap(peerNode); if (rules != null && rules.length > 0) { for (IPathMap.PathMapRule rule : rules) { rule.getProperties().put(PROP_GENERATED, Boolean.TRUE); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/handler/AbstractDiagnosticsCommandHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/handler/AbstractDiagnosticsCommandHandler.java index 323554aac..0bbec8e6c 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/handler/AbstractDiagnosticsCommandHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/handler/AbstractDiagnosticsCommandHandler.java @@ -47,8 +47,8 @@ import org.eclipse.tcf.services.IMemoryMap; import org.eclipse.tcf.services.IPathMap; import org.eclipse.tcf.te.tcf.launch.ui.editor.AbstractTcfLaunchTabContainerEditorPage; import org.eclipse.tcf.te.tcf.launch.ui.nls.Messages; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService; import org.eclipse.ui.handlers.HandlerUtil; /** @@ -71,11 +71,11 @@ public abstract class AbstractDiagnosticsCommandHandler extends AbstractHandler while (iterator.hasNext()) { Object element = iterator.next(); - // The selected element must be of type IPeerModel - if (element instanceof IPeerModel) { - final IPeerModel node = (IPeerModel)element; + // The selected element must be of type IPeerNode + if (element instanceof IPeerNode) { + final IPeerNode node = (IPeerNode)element; - ILocatorModelPeerNodeQueryService service = node.getModel().getService(ILocatorModelPeerNodeQueryService.class); + IPeerModelQueryService service = node.getModel().getService(IPeerModelQueryService.class); String remoteServices = service != null ? service.queryRemoteServices(node) : null; if (remoteServices != null && remoteServices.contains(IDiagnostics.NAME)) { @@ -101,7 +101,7 @@ public abstract class AbstractDiagnosticsCommandHandler extends AbstractHandler * @param peer The peer. Must not be <code>null</code>. * @param parentShell The parent shell. Must not be <code>null</code>. */ - /* default */ void runDiagnostics(IPeerModel node, Shell parentShell) { + /* default */ void runDiagnostics(IPeerNode node, Shell parentShell) { Assert.isNotNull(node); Assert.isNotNull(parentShell); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/launchcontext/AbstractLaunchContextMainTab.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/launchcontext/AbstractLaunchContextMainTab.java index 0de7224f1..020e38bbe 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/launchcontext/AbstractLaunchContextMainTab.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.launch.ui/src/org/eclipse/tcf/te/tcf/launch/ui/launchcontext/AbstractLaunchContextMainTab.java @@ -28,7 +28,7 @@ import org.eclipse.tcf.te.launch.core.selection.RemoteSelectionContext; import org.eclipse.tcf.te.launch.ui.interfaces.ILaunchConfigurationTabFormPart; import org.eclipse.tcf.te.launch.ui.tabs.launchcontext.AbstractContextSelectorTab; import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.ui.controls.ContextSelectorSectionControl; import org.eclipse.tcf.te.tcf.ui.sections.AbstractContextSelectorSection; import org.eclipse.tcf.te.ui.views.controls.AbstractContextSelectorControl; @@ -51,7 +51,7 @@ public abstract class AbstractLaunchContextMainTab extends AbstractContextSelect */ @Override public boolean select(Viewer viewer, Object parentElement, Object element) { - if (element instanceof IPeerModel) { + if (element instanceof IPeerNode) { String typeId = null; if (configuration != null) { try { @@ -63,7 +63,7 @@ public abstract class AbstractLaunchContextMainTab extends AbstractContextSelect String mode = getLaunchConfigurationDialog().getMode(); if (typeId != null && mode != null) { - return LaunchConfigTypeBindingsManager.getInstance().isValidLaunchConfigType(typeId, mode, new RemoteSelectionContext((IPeerModel)element, true)); + return LaunchConfigTypeBindingsManager.getInstance().isValidLaunchConfigType(typeId, mode, new RemoteSelectionContext((IPeerNode)element, true)); } } return true; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/META-INF/MANIFEST.MF b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/META-INF/MANIFEST.MF index 837d3df41..deffea96f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/META-INF/MANIFEST.MF +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/META-INF/MANIFEST.MF @@ -29,7 +29,6 @@ Export-Package: org.eclipse.tcf.te.tcf.locator, org.eclipse.tcf.te.tcf.locator.interfaces.services, org.eclipse.tcf.te.tcf.locator.internal;x-internal:=true, org.eclipse.tcf.te.tcf.locator.internal.adapters;x-internal:=true, - org.eclipse.tcf.te.tcf.locator.internal.nodes;x-internal:=true, org.eclipse.tcf.te.tcf.locator.internal.preferences, org.eclipse.tcf.te.tcf.locator.internal.services;x-internal:=true, org.eclipse.tcf.te.tcf.locator.iterators, diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/plugin.xml index c4582a6d0..71ce90d21 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/plugin.xml @@ -13,23 +13,23 @@ <!-- Adapter factory contributions --> <extension point="org.eclipse.core.runtime.adapters"> <factory - adaptableType="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel" + adaptableType="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode" class="org.eclipse.tcf.te.tcf.locator.internal.adapters.AdapterFactory"> <adapter type="org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableURIProvider"/> <adapter type="org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext"/> - <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel"/> + <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> </factory> <factory adaptableType="org.eclipse.tcf.protocol.IPeer" class="org.eclipse.tcf.te.tcf.locator.internal.adapters.AdapterFactory"> <adapter type="org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableURIProvider"/> - <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </factory> <factory - adaptableType="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider" + adaptableType="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider" class="org.eclipse.tcf.te.tcf.locator.internal.adapters.AdapterFactory"> <adapter type="org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableURIProvider"/> - <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </factory> </extension> @@ -43,22 +43,22 @@ <delegate class="org.eclipse.tcf.te.tcf.locator.internal.ModelNodeFactoryDelegate" id="org.eclipse.tcf.te.tcf.locator.model.factory.delegate"> - <nodeType class="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <nodeType class="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </delegate> </extension> <!-- Eclipse core expressions property tester --> <extension point="org.eclipse.core.expressions.propertyTesters"> <propertyTester - class="org.eclipse.tcf.te.tcf.locator.internal.LocatorModelPropertyTester" + class="org.eclipse.tcf.te.tcf.locator.internal.PeerModelPropertyTester" id="org.eclipse.tcf.te.tcf.locator.LocatorModelPropertyTester" namespace="org.eclipse.tcf.te.tcf.locator" properties="name,nameRegex,osName,osNameRegex,hasLocalService,hasRemoteService,hasOfflineService,hasAttribute,isAttribute,isStaticPeer,isRedirected,isProxy,isValueAdd,isOfType" - type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> </propertyTester> <propertyTester - class="org.eclipse.tcf.te.tcf.locator.internal.LocatorModelPropertyTester" + class="org.eclipse.tcf.te.tcf.locator.internal.PeerModelPropertyTester" id="org.eclipse.tcf.te.tcf.locator.LocatorModelPropertyTester2" namespace="org.eclipse.tcf.te.tcf.locator" properties="name,nameRegex,osName,osNameRegex,hasLocalService,hasRemoteService,hasOfflineService,hasAttribute,isAttribute,isStaticPeer,isRedirected,isProxy,isValueAdd,isOfType" @@ -70,7 +70,7 @@ id="org.eclipse.tcf.te.tcf.locator.SimulatorPropertyTester" namespace="org.eclipse.tcf.te.tcf.locator" properties="isSimulatorState,canStartSimulator" - type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> </propertyTester> </extension> @@ -104,8 +104,8 @@ <with variable="context"> <or> <instanceof value="org.eclipse.tcf.protocol.IPeer"/> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider"/> <and> <instanceof value="java.lang.Class"/> <with variable="contextClass"> @@ -127,7 +127,10 @@ bundleId="org.eclipse.tcf.te.runtime.services" class="org.eclipse.tcf.te.runtime.services.interfaces.IPropertiesAccessService"/> <enablement> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <or> + <instanceof value="org.eclipse.tcf.protocol.IPeer"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> + </or> </enablement> </service> <service @@ -138,7 +141,7 @@ class="org.eclipse.tcf.te.runtime.stepper.interfaces.IStepperOperationService"> </serviceType> <enablement> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <test forcePluginActivation="true" property="org.eclipse.tcf.te.tcf.locator.isStaticPeer" value="true"/> <test forcePluginActivation="true" property="org.eclipse.tcf.te.tcf.locator.isOfType" value="null"/> </enablement> @@ -267,7 +270,7 @@ is adaptable to IPeerModel and has a simulator service --> <definition id="te.expressions.peerModel.hasSimulatorService"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="org.eclipse.tcf.te.runtime.services.hasService" value="org.eclipse.tcf.te.runtime.services.interfaces.ISimulatorService"/> <test property="org.eclipse.tcf.te.tcf.locator.isAttribute" @@ -300,7 +303,7 @@ is adaptable to IPeerModel and has remote or offline run control --> <definition id="te.expressions.peerModel.hasRunControl"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <or> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="RunControl"/> <test property="org.eclipse.tcf.te.tcf.locator.hasOfflineService" value="RunControl"/> diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/Scanner.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/Scanner.java index 24f488c10..a0adeaa52 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/Scanner.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/Scanner.java @@ -29,9 +29,9 @@ import org.eclipse.tcf.te.tcf.core.async.CallbackInvocationDelegate; import org.eclipse.tcf.te.tcf.locator.activator.CoreBundleActivator; import org.eclipse.tcf.te.tcf.locator.interfaces.IScanner; import org.eclipse.tcf.te.tcf.locator.interfaces.ITracing; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.tcf.locator.model.Model; @@ -40,7 +40,7 @@ import org.eclipse.tcf.te.tcf.locator.model.Model; */ public class Scanner extends Job implements IScanner { // Reference to the parent model instance. - private final ILocatorModel parentModel; + private final IPeerModel parentModel; // Reference to the scanner configuration private final Map<String, Object> configuration = new HashMap<String, Object>(); @@ -53,7 +53,7 @@ public class Scanner extends Job implements IScanner { * * @param parentModel The parent model instance. Must not be <code>null</code>. */ - public Scanner(ILocatorModel parentModel) { + public Scanner(IPeerModel parentModel) { super(Scanner.class.getName()); Assert.isNotNull(parentModel); this.parentModel = parentModel; @@ -68,7 +68,7 @@ public class Scanner extends Job implements IScanner { * * @return The parent model instance. */ - protected ILocatorModel getParentModel() { + protected IPeerModel getParentModel() { return parentModel; } @@ -98,7 +98,7 @@ public class Scanner extends Job implements IScanner { if (monitor == null) monitor = new NullProgressMonitor(); // Get the current list of peers known to the parent model - IPeerModel[] peers = getParentModel().getPeers(); + IPeerNode[] peers = getParentModel().getPeers(); // Do we have something to scan at all if (peers.length > 0) { try { @@ -131,7 +131,7 @@ public class Scanner extends Job implements IScanner { }, new CallbackInvocationDelegate()); // Loop the nodes and try to get an channel - for (IPeerModel peer : peers) { + for (IPeerNode peer : peers) { // Check for the progress monitor getting canceled if (monitor.isCanceled() || isTerminated()) break; // Scan the peer @@ -155,7 +155,7 @@ public class Scanner extends Job implements IScanner { * @param collector The callback collector. Must not be <code>null</code>. * @param monitor The progress monitor. Must not be <code>null</code>. */ - /* default */ void doScan(final IPeerModel peer, final AsyncCallbackCollector collector, final IProgressMonitor monitor) { + /* default */ void doScan(final IPeerNode peer, final AsyncCallbackCollector collector, final IProgressMonitor monitor) { Assert.isNotNull(peer); Assert.isNotNull(collector); Assert.isNotNull(monitor); @@ -174,7 +174,7 @@ public class Scanner extends Job implements IScanner { @Override public void run() { - isExcluded.set(peer.getBooleanProperty(IPeerModelProperties.PROP_SCANNER_EXCLUDE)); + isExcluded.set(peer.getBooleanProperty(IPeerNodeProperties.PROP_SCANNER_EXCLUDE)); } }; @@ -191,9 +191,9 @@ public class Scanner extends Job implements IScanner { if (!monitor.isCanceled() && !isTerminated()) { // Get the children of the scanned peer model and make sure // they are scanned too if not excluded - List<IPeerModel> candidates = Model.getModel().getChildren(peer.getPeerId()); + List<IPeerNode> candidates = Model.getModel().getChildren(peer.getPeerId()); if (candidates != null && candidates.size() > 0) { - for (IPeerModel candidate : candidates) { + for (IPeerNode candidate : candidates) { doScan(candidate, collector, monitor); } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/ScannerRunnable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/ScannerRunnable.java index 51fd51b7c..926d67494 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/ScannerRunnable.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/ScannerRunnable.java @@ -37,12 +37,12 @@ import org.eclipse.tcf.te.tcf.core.peers.Peer; import org.eclipse.tcf.te.tcf.locator.activator.CoreBundleActivator; import org.eclipse.tcf.te.tcf.locator.interfaces.IScanner; import org.eclipse.tcf.te.tcf.locator.interfaces.ITracing; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService; -import org.eclipse.tcf.te.tcf.locator.nodes.PeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService; +import org.eclipse.tcf.te.tcf.locator.nodes.PeerNode; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; @@ -55,7 +55,7 @@ public class ScannerRunnable implements Runnable, IChannel.IChannelListener { // Reference to the parent model scanner private final IScanner parentScanner; // Reference to the peer model node to update - /* default */ final IPeerModel peerNode; + /* default */ final IPeerNode peerNode; // Reference to the channel /* default */ IChannel channel = null; // Mark if the used channel is a shared channel instance @@ -70,7 +70,7 @@ public class ScannerRunnable implements Runnable, IChannel.IChannelListener { * @param scanner The parent model scanner or <code>null</code> if the runnable is constructed from outside a scanner. * @param peerNode The peer model instance. Must not be <code>null</code>. */ - public ScannerRunnable(IScanner scanner, IPeerModel peerNode) { + public ScannerRunnable(IScanner scanner, IPeerNode peerNode) { this(scanner, peerNode, null); } @@ -81,7 +81,7 @@ public class ScannerRunnable implements Runnable, IChannel.IChannelListener { * @param peerNode The peer model instance. Must not be <code>null</code>. * @param callback The callback to invoke once the scan has been completed or <code>null</code>. */ - public ScannerRunnable(IScanner scanner, IPeerModel peerNode, ICallback callback) { + public ScannerRunnable(IScanner scanner, IPeerNode peerNode, ICallback callback) { super(); parentScanner = scanner; @@ -193,19 +193,19 @@ public class ScannerRunnable implements Runnable, IChannel.IChannelListener { final boolean changed = peerNode.setChangeEventsEnabled(false); // Set the peer state property - int counter = peerNode.getIntProperty(IPeerModelProperties.PROP_CHANNEL_REF_COUNTER); - if (!peerNode.isProperty(IPeerModelProperties.PROP_STATE, IPeerModelProperties.STATE_WAITING_FOR_READY)) { - peerNode.setProperty(IPeerModelProperties.PROP_STATE, counter > 0 ? IPeerModelProperties.STATE_CONNECTED : IPeerModelProperties.STATE_REACHABLE); - peerNode.setProperty(IPeerModelProperties.PROP_LAST_SCANNER_ERROR, null); + int counter = peerNode.getIntProperty(IPeerNodeProperties.PROP_CHANNEL_REF_COUNTER); + if (!peerNode.isProperty(IPeerNodeProperties.PROP_STATE, IPeerNodeProperties.STATE_WAITING_FOR_READY)) { + peerNode.setProperty(IPeerNodeProperties.PROP_STATE, counter > 0 ? IPeerNodeProperties.STATE_CONNECTED : IPeerNodeProperties.STATE_REACHABLE); + peerNode.setProperty(IPeerNodeProperties.PROP_LAST_SCANNER_ERROR, null); } // Get the parent model from the model mode - final ILocatorModel model = (ILocatorModel)peerNode.getAdapter(ILocatorModel.class); + final IPeerModel model = (IPeerModel)peerNode.getAdapter(IPeerModel.class); if (channel != null && channel.getState() == IChannel.STATE_OPEN) { // Update the services lists - ILocatorModelUpdateService updateService = model != null ? model.getService(ILocatorModelUpdateService.class) : null; + IPeerModelUpdateService updateService = model != null ? model.getService(IPeerModelUpdateService.class) : null; if (updateService != null) { Collection<String> localServices = channel.getLocalServices(); Collection<String> remoteServices = channel.getRemoteServices(); @@ -294,7 +294,7 @@ public class ScannerRunnable implements Runnable, IChannel.IChannelListener { // Update the peer attributes Map<String, String> attrs = new HashMap<String, String>(channel.getRemotePeer().getAttributes()); attrs.put(IPeer.ATTR_AGENT_ID, agentID); - peerNode.setProperty(IPeerModelProperties.PROP_INSTANCE, new Peer(attrs)); + peerNode.setProperty(IPeerNodeProperties.PROP_INSTANCE, new Peer(attrs)); } if (isGetPeersAllowed(channel)) { @@ -367,7 +367,7 @@ public class ScannerRunnable implements Runnable, IChannel.IChannelListener { * @param callback The callback. Must not be <code>null</code>. */ @SuppressWarnings("unused") - protected void getPeers(final IChannel channel, final ILocatorModel model, final String ip, final ICallback callback) { + protected void getPeers(final IChannel channel, final IPeerModel model, final String ip, final ICallback callback) { Assert.isNotNull(channel); Assert.isNotNull(model); Assert.isNotNull(callback); @@ -404,7 +404,7 @@ public class ScannerRunnable implements Runnable, IChannel.IChannelListener { // Get the parent peer IPeer parentPeer = channel.getRemotePeer(); // Get the old child list - List<IPeerModel> oldChildren = new ArrayList<IPeerModel>(model.getChildren(parentPeer.getID())); + List<IPeerNode> oldChildren = new ArrayList<IPeerNode>(model.getChildren(parentPeer.getID())); // "getPeers" returns a collection of peer attribute maps @SuppressWarnings("unchecked") @@ -428,37 +428,27 @@ public class ScannerRunnable implements Runnable, IChannel.IChannelListener { // Create a peer instance IPeer peer = new PeerRedirector(parentPeer, attributes); // Try to find an existing peer node first - IPeerModel peerNode = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(parentPeer.getID(), peerId); + IPeerNode peerNode = model.getService(IPeerModelLookupService.class).lkupPeerModelById(parentPeer.getID(), peerId); if (peerNode == null) { // Not yet known -> add it - peerNode = new PeerModel(model, peer); + peerNode = new PeerNode(model, peer); peerNode.setParent(ScannerRunnable.this.peerNode); - peerNode.setProperty(IPeerModelProperties.PROP_SCANNER_EXCLUDE, true); + peerNode.setProperty(IPeerNodeProperties.PROP_SCANNER_EXCLUDE, true); // Validate the peer node before adding peerNode = model.validateChildPeerNodeForAdd(peerNode); if (peerNode != null) { // Add the child peer node to model - model.getService(ILocatorModelUpdateService.class).addChild(peerNode); + model.getService(IPeerModelUpdateService.class).addChild(peerNode); } } else { // The parent node should be set and match - Assert.isTrue(peerNode.getParent(IPeerModel.class) != null && peerNode.getParent(IPeerModel.class).equals(ScannerRunnable.this.peerNode)); + Assert.isTrue(peerNode.getParent(IPeerNode.class) != null && peerNode.getParent(IPeerNode.class).equals(ScannerRunnable.this.peerNode)); // Peer node found, update the peer instance - peerNode.setProperty(IPeerModelProperties.PROP_INSTANCE, peer); + peerNode.setProperty(IPeerNodeProperties.PROP_INSTANCE, peer); // And remove it from the old child list oldChildren.remove(peerNode); } } - - // Everything left in the old child list is not longer known to the remote peer - // However, the child list may include manual redirected static peers. Do not - // remove them here. - for (IPeerModel child : oldChildren) { - if (!child.isStatic()) { - // Remove the child peer node from the model - model.getService(ILocatorModelUpdateService.class).removeChild(child); - } - } } // Once everything is processed, close the channel @@ -500,17 +490,17 @@ public class ScannerRunnable implements Runnable, IChannel.IChannelListener { // Turn off change notifications temporarily boolean changed = peerNode.setChangeEventsEnabled(false); - peerNode.setProperty(IPeerModelProperties.PROP_CHANNEL_REF_COUNTER, null); - if (!peerNode.isProperty(IPeerModelProperties.PROP_STATE, IPeerModelProperties.STATE_WAITING_FOR_READY)) { + peerNode.setProperty(IPeerNodeProperties.PROP_CHANNEL_REF_COUNTER, null); + if (!peerNode.isProperty(IPeerNodeProperties.PROP_STATE, IPeerNodeProperties.STATE_WAITING_FOR_READY)) { boolean timeout = error instanceof SocketTimeoutException || (error instanceof ConnectException && error.getMessage() != null && error.getMessage().startsWith("Connection timed out:")); //$NON-NLS-1$ - peerNode.setProperty(IPeerModelProperties.PROP_STATE, timeout ? IPeerModelProperties.STATE_NOT_REACHABLE : IPeerModelProperties.STATE_ERROR); - peerNode.setProperty(IPeerModelProperties.PROP_LAST_SCANNER_ERROR, error instanceof SocketTimeoutException ? null : error); + peerNode.setProperty(IPeerNodeProperties.PROP_STATE, timeout ? IPeerNodeProperties.STATE_NOT_REACHABLE : IPeerNodeProperties.STATE_ERROR); + peerNode.setProperty(IPeerNodeProperties.PROP_LAST_SCANNER_ERROR, error instanceof SocketTimeoutException ? null : error); } // Clear out previously determined services - ILocatorModel model = (ILocatorModel)peerNode.getAdapter(ILocatorModel.class); + IPeerModel model = (IPeerModel)peerNode.getAdapter(IPeerModel.class); if (model != null) { - ILocatorModelUpdateService updateService = model.getService(ILocatorModelUpdateService.class); + IPeerModelUpdateService updateService = model.getService(IPeerModelUpdateService.class); updateService.updatePeerServices(peerNode, null, null); // Clean out possible child nodes @@ -534,7 +524,7 @@ public class ScannerRunnable implements Runnable, IChannel.IChannelListener { * @param node The peer model node. Must not be <code>null</code>. * @param changed <code>True</code> if the change events shall be enabled, <code>false</code> otherwise. */ - protected void onDone(IPeerModel node, boolean changed) { + protected void onDone(IPeerNode node, boolean changed) { Assert.isNotNull(node); // Reset the scanner runnable marker diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/activator/CoreBundleActivator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/activator/CoreBundleActivator.java index 9b25bd98b..5584d8615 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/activator/CoreBundleActivator.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/activator/CoreBundleActivator.java @@ -13,7 +13,7 @@ import org.eclipse.core.runtime.Plugin; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.preferences.ScopedEclipsePreferences; import org.eclipse.tcf.te.runtime.tracing.TraceHandler; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.osgi.framework.BundleContext; @@ -87,7 +87,7 @@ public class CoreBundleActivator extends Plugin { plugin = null; // Dispose the locator model - final ILocatorModel model = Model.getModel(true); + final IPeerModel model = Model.getModel(true); if (model != null) { Runnable runnable = new Runnable() { @Override diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/IModelListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/IModelListener.java index c592f5362..18fea6a2d 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/IModelListener.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/IModelListener.java @@ -9,8 +9,8 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.locator.interfaces; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Interface for clients to implement that wishes to listen to changes to the locator model. @@ -21,15 +21,15 @@ public interface IModelListener { * Invoked if a peer is added or removed to/from the locator model. * * @param model The changed locator model. - * @param peerModel The added/removed peer model node. + * @param peerNode The added/removed peer model node. * @param added <code>True</code> if the peer model node got added, <code>false</code> if it got removed. */ - public void locatorModelChanged(ILocatorModel model, IPeerModel peerModel, boolean added); + public void locatorModelChanged(IPeerModel model, IPeerNode peerNode, boolean added); /** * Invoked if the locator model is disposed. * * @param model The disposed locator model. */ - public void locatorModelDisposed(ILocatorModel model); + public void locatorModelDisposed(IPeerModel model); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/ITracing.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/ITracing.java index b131fbb3b..b8475fb93 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/ITracing.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/ITracing.java @@ -18,7 +18,7 @@ public interface ITracing { /** * If enabled, prints information about locator model method invocations. */ - public static String ID_TRACE_LOCATOR_MODEL = "trace/locatorModel"; //$NON-NLS-1$ + public static String ID_TRACE_LOCATOR_MODEL = "trace/peerModel"; //$NON-NLS-1$ /** * If enabled, prints information about locator listener method invocations. diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/ILocatorModel.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/ILocatorModel.java deleted file mode 100644 index 7c89b9d54..000000000 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/ILocatorModel.java +++ /dev/null @@ -1,158 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 - * - * Contributors: - * Wind River Systems - initial API and implementation - *******************************************************************************/ -package org.eclipse.tcf.te.tcf.locator.interfaces.nodes; - -import java.util.List; - -import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.tcf.protocol.IPeer; -import org.eclipse.tcf.services.ILocator; -import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; -import org.eclipse.tcf.te.tcf.locator.interfaces.IScanner; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelService; - - -/** - * The locator model is an extension to the TCF locator service. The - * model allows to store additional properties for each peer, keep - * track of peers from different origins. - * <p> - * <b>Note:</b> Updates to the locator model, and the locator model - * children needs to be performed in the TCF dispatch thread. The - * locator model and all child model nodes do assert this core - * assumption. To maintain consistency, and to avoid any performance - * overhead for thread synchronization, the model read access must - * happen in the TCF dispatch thread as well. - * - * @see ILocator - */ -public interface ILocatorModel extends IAdaptable { - - /** - * Adds the specified listener to the list of model listener. - * If the same listener has been added before, the listener will - * not be added again. - * - * @param listener The listener. Must not be <code>null</code>. - */ - public void addListener(IModelListener listener); - - /** - * Removes the specified listener from the list of model listener. - * - * @param listener The listener. Must not be <code>null</code>. - */ - public void removeListener(IModelListener listener); - - /** - * Returns the list of registered model listeners. - * - * @return The list of registered model listeners or an empty list. - */ - public IModelListener[] getListener(); - - /** - * Dispose the locator model instance. - */ - public void dispose(); - - /** - * Returns if or if not the locator model instance is disposed. - * - * @return <code>True</code> if the locator model instance is disposed, <code>false/code> otherwise. - */ - public boolean isDisposed(); - - /** - * Returns the list of known peers. - * - * @return The list of known peers or an empty list. - */ - public IPeerModel[] getPeers(); - - /** - * Returns an unmodifiable list of known children for the given parent peer. - * - * @param parentPeerID The parent peer id. Must not be <code>null</code>. - * @return The child list. - */ - public List<IPeerModel> getChildren(String parentPeerID); - - /** - * Sets the list of known children for the given parent peer. - * - * @param parentPeerID The parent peer id. Must not be <code>null</code>. - * @param children The list of children or <code>null</code> to remove the parent peer. - */ - public void setChildren(String parentPeerID, List<IPeerModel> children); - - /** - * Returns the scanner instance being associated with the - * locator model. - * - * @return The scanner instance. - */ - public IScanner getScanner(); - - /** - * Starts the scanner. - * - * @param delay The delay in millisecond before the scanning starts. - * @param schedule The time in millisecond between the scanner runs. - */ - public void startScanner(long delay, long schedule); - - /** - * Stops the scanner. - */ - public void stopScanner(); - - /** - * Returns the locator model service, implementing at least the specified - * service interface. - * - * @param serviceInterface The service interface class. Must not be <code>null</code>. - * @return The service instance implementing the specified service interface, or <code>null</code>. - */ - public <V extends ILocatorModelService> V getService(Class<V> serviceInterface); - - /** - * Validate the given peer. - * <p> - * If the peer is for local host, than only the peer using the loopback address is valid. - * - * @param peer The peer. Must not be <code>null</code>. - * @return The peer if the peer is valid, or <code>null</code> if not. - */ - public IPeer validatePeer(IPeer peer); - - /** - * Validate the given peer model if or if not it can be added to the locator model as new peer - * node. - * - * @param node The peer model. Must not be <code>null</code>. - * @return The peer node if it allowed add it to the model, or <code>null</code> if not. - */ - public IPeerModel validatePeerNodeForAdd(IPeerModel node); - - /** - * Validate the given child peer model node if or if not it can be added to the locator model - * as new child peer node for the associated parent peer model node. - * <p> - * <b>Note:</b> The parent peer node is determined by calling {@link IPeerModel#getParentNode()}. - * The call has to return a non-null value, otherwise {@link #validateChildPeerNodeForAdd(IPeerModel)} - * will do nothing. - * - * @param node The peer model. Must not be <code>null</code>. - * @return The peer node if it allowed add it to the model, or <code>null</code> if not. - */ - public IPeerModel validateChildPeerNodeForAdd(IPeerModel node); - -} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerModel.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerModel.java index 310dd1b5d..832f225e7 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerModel.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerModel.java @@ -9,80 +9,150 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.locator.interfaces.nodes; +import java.util.List; + +import org.eclipse.core.runtime.IAdaptable; import org.eclipse.tcf.protocol.IPeer; -import org.eclipse.tcf.te.core.interfaces.IDecoratable; -import org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode; +import org.eclipse.tcf.services.ILocator; +import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; +import org.eclipse.tcf.te.tcf.locator.interfaces.IScanner; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelService; + /** - * The peer model is an extension to the TCF peer representation, implementing the {@link IPeer} - * interface. The peer model provides an offline cache for a peers known list of local and remote - * services and is the merge point of peer attributes from custom data storages. + * The locator model is an extension to the TCF locator service. The + * model allows to store additional properties for each peer, keep + * track of peers from different origins. * <p> - * <b>Note:</b> Read and write access to the peer model must happen within the TCF dispatch thread. + * <b>Note:</b> Updates to the locator model, and the locator model + * children needs to be performed in the TCF dispatch thread. The + * locator model and all child model nodes do assert this core + * assumption. To maintain consistency, and to avoid any performance + * overhead for thread synchronization, the model read access must + * happen in the TCF dispatch thread as well. + * + * @see ILocator */ -public interface IPeerModel extends IContainerModelNode, IDecoratable { +public interface IPeerModel extends IAdaptable { /** - * Returns the parent locator model instance. - * <p> - * This method may be called from any thread. + * Adds the specified listener to the list of model listener. + * If the same listener has been added before, the listener will + * not be added again. * - * @return The parent locator model instance. + * @param listener The listener. Must not be <code>null</code>. */ - public ILocatorModel getModel(); + public void addListener(IModelListener listener); /** - * Returns the native {@link IPeer} object. - * <p> - * This method may be called from any thread. + * Removes the specified listener from the list of model listener. * - * @return The native {@link IPeer} instance. + * @param listener The listener. Must not be <code>null</code>. */ - public IPeer getPeer(); + public void removeListener(IModelListener listener); /** - * Returns the peer id. - * <p> - * This method may be called from any thread. + * Returns the list of registered model listeners. * - * @return The peer id. + * @return The list of registered model listeners or an empty list. */ - public String getPeerId(); + public IModelListener[] getListener(); /** - * Returns the peer id of the remote peer. - * <p> - * For dynamically discovered peers, {@link #getPeerId()} and {@link #getRemotePeerId()} are identical. - * <p> - * For static peers, {@link #getRemotePeerId()} will return <code>null</code> if the static peer is not - * associated with an agent. Otherwise it will return the id of the associated agent. + * Dispose the locator model instance. + */ + public void dispose(); + + /** + * Returns if or if not the locator model instance is disposed. + * + * @return <code>True</code> if the locator model instance is disposed, <code>false/code> otherwise. + */ + public boolean isDisposed(); + + /** + * Returns the list of known peers. * - * @return The remote peer id or <code>null</code>. + * @return The list of known peers or an empty list. */ - public String getRemotePeerId(); + public IPeerNode[] getPeers(); /** - * Returns if or if not the peer attributes are complete to open a channel to it. + * Returns an unmodifiable list of known children for the given parent peer. * - * @return <code>True</code> if the peer attributes are complete, <code>false</code> otherwise. + * @param parentPeerID The parent peer id. Must not be <code>null</code>. + * @return The child list. */ - public boolean isComplete(); + public List<IPeerNode> getChildren(String parentPeerID); /** - * Returns if or if not the peer model node represents a static peer. + * Sets the list of known children for the given parent peer. + * + * @param parentPeerID The parent peer id. Must not be <code>null</code>. + * @param children The list of children or <code>null</code> to remove the parent peer. + */ + public void setChildren(String parentPeerID, List<IPeerNode> children); + + /** + * Returns the scanner instance being associated with the + * locator model. + * + * @return The scanner instance. + */ + public IScanner getScanner(); + + /** + * Starts the scanner. + * + * @param delay The delay in millisecond before the scanning starts. + * @param schedule The time in millisecond between the scanner runs. + */ + public void startScanner(long delay, long schedule); + + /** + * Stops the scanner. + */ + public void stopScanner(); + + /** + * Returns the locator model service, implementing at least the specified + * service interface. + * + * @param serviceInterface The service interface class. Must not be <code>null</code>. + * @return The service instance implementing the specified service interface, or <code>null</code>. + */ + public <V extends IPeerModelService> V getService(Class<V> serviceInterface); + + /** + * Validate the given peer. * <p> - * <b>Note:</b> A peer model node can be both static and remote at the same time. + * If the peer is for local host, than only the peer using the loopback address is valid. * - * @return <code>True</code> if the node represents a static peer, <code>false</code> otherwise. + * @param peer The peer. Must not be <code>null</code>. + * @return The peer if the peer is valid, or <code>null</code> if not. */ - public boolean isStatic(); + public IPeer validatePeer(IPeer peer); /** - * Returns if or if not the peer model node represents a remote/discovered peer. + * Validate the given peer model if or if not it can be added to the locator model as new peer + * node. + * + * @param node The peer model. Must not be <code>null</code>. + * @return The peer node if it allowed add it to the model, or <code>null</code> if not. + */ + public IPeerNode validatePeerNodeForAdd(IPeerNode node); + + /** + * Validate the given child peer model node if or if not it can be added to the locator model + * as new child peer node for the associated parent peer model node. * <p> - * <b>Note:</b> A peer model node can be both static and remote at the same time. + * <b>Note:</b> The parent peer node is determined by calling {@link IPeerNode#getParentNode()}. + * The call has to return a non-null value, otherwise {@link #validateChildPeerNodeForAdd(IPeerNode)} + * will do nothing. * - * @return <code>True</code> if the node represents a remote peer, <code>false</code> otherwise. + * @param node The peer model. Must not be <code>null</code>. + * @return The peer node if it allowed add it to the model, or <code>null</code> if not. */ - public boolean isRemote(); + public IPeerNode validateChildPeerNodeForAdd(IPeerNode node); + } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerNode.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerNode.java new file mode 100644 index 000000000..7b8f877a4 --- /dev/null +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerNode.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.locator.interfaces.nodes; + +import org.eclipse.tcf.protocol.IPeer; +import org.eclipse.tcf.te.core.interfaces.IConnectable; +import org.eclipse.tcf.te.core.interfaces.IDecoratable; +import org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode; + +/** + * The peer model is an extension to the TCF peer representation, implementing the {@link IPeer} + * interface. The peer model provides an offline cache for a peers known list of local and remote + * services and is the merge point of peer attributes from custom data storages. + * <p> + * <b>Note:</b> Read and write access to the peer model must happen within the TCF dispatch thread. + */ +public interface IPeerNode extends IContainerModelNode, IDecoratable, IConnectable { + + /** + * Returns the parent locator model instance. + * <p> + * This method may be called from any thread. + * + * @return The parent locator model instance. + */ + public IPeerModel getModel(); + + /** + * Returns the native {@link IPeer} object. + * <p> + * This method may be called from any thread. + * + * @return The native {@link IPeer} instance. + */ + public IPeer getPeer(); + + /** + * Returns the peer id. + * <p> + * This method may be called from any thread. + * + * @return The peer id. + */ + public String getPeerId(); + + /** + * Returns if or if not the peer attributes are complete to open a channel to it. + * + * @return <code>True</code> if the peer attributes are complete, <code>false</code> otherwise. + */ + public boolean isComplete(); +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerModelProperties.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerNodeProperties.java index d20d9ce0e..3e5491003 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerModelProperties.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerNodeProperties.java @@ -10,11 +10,17 @@ package org.eclipse.tcf.te.tcf.locator.interfaces.nodes; import org.eclipse.tcf.protocol.IPeer; +import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; /** - * Default set of custom peer properties. + * Default set of peer node properties. */ -public interface IPeerModelProperties { +public interface IPeerNodeProperties { + + /** + * Property: The peer node connect state. + */ + public static final String PROP_CONNECT_STATE = "connectState"; //$NON-NLS-1$ /** * Property: The peer instance. Object stored here must be @@ -73,63 +79,63 @@ public interface IPeerModelProperties { public static final int STATE_WAITING_FOR_READY = 4; /** - * Property: The peer type. + * Property: Reference counter tracking the active channels for this peer. */ - public static final String PROP_TYPE = "Type"; //$NON-NLS-1$ + public static String PROP_CHANNEL_REF_COUNTER = "channelRefCounter.silent"; //$NON-NLS-1$ /** - * Property: List of TCF services the peer would have when it goes online (comma separated list). + * Property: Discovered target for a static peer */ - public static final String PROP_OFFLINE_SERVICES = "OfflineServices"; //$NON-NLS-1$ + public static final String PROP_TARGET = "Target"; //$NON-NLS-1$ /** - * Property: The peer visible state. + * Property: Exclude from scanner process. If set to <code>true</code>, the node will not be scanned + * by the scanner. */ - public static final String PROP_VISIBLE = "Visible"; //$NON-NLS-1$ + public static String PROP_SCANNER_EXCLUDE = "scanner.exclude.silent"; //$NON-NLS-1$ /** - * Property: Reference counter tracking the active channels for this peer. + * Property: The last error the scanner encounter trying to open a channel to this peer. */ - public static String PROP_CHANNEL_REF_COUNTER = "channelRefCounter.silent"; //$NON-NLS-1$ + public static String PROP_LAST_SCANNER_ERROR = "lastScannerError"; //$NON-NLS-1$ /** - * Property: The last error the scanner encounter trying to open a channel to this peer. + * Property: The peer type. */ - public static String PROP_LAST_SCANNER_ERROR = "lastScannerError"; //$NON-NLS-1$ + public static final String PROP_TYPE = "Type" + IPropertiesContainer.PERSISTENT_PROPERTY; //$NON-NLS-1$ /** - * Property: Launch simulator + * Property: List of TCF services the peer would have when it goes online (comma separated list). */ - public static final String PROP_SIM_ENABLED = "SimulatorEnabled"; //$NON-NLS-1$ + public static final String PROP_OFFLINE_SERVICES = "OfflineServices" + IPropertiesContainer.PERSISTENT_PROPERTY; //$NON-NLS-1$ /** - * Property: Simulator properties + * Property: The peer visible state. */ - public static final String PROP_SIM_PROPERTIES = "SimulatorProperties"; //$NON-NLS-1$ + public static final String PROP_VISIBLE = "Visible" + IPropertiesContainer.PERSISTENT_PROPERTY; //$NON-NLS-1$ /** - * Property: Last selected simulator type + * Property: Launch simulator */ - public static final String PROP_SIM_TYPE = "SimulatorType"; //$NON-NLS-1$ + public static final String PROP_SIM_ENABLED = "SimulatorEnabled" + IPropertiesContainer.PERSISTENT_PROPERTY; //$NON-NLS-1$ /** - * Property: Discovered target for a static peer + * Property: Simulator properties */ - public static final String PROP_TARGET = "Target"; //$NON-NLS-1$ + public static final String PROP_SIM_PROPERTIES = "SimulatorProperties" + IPropertiesContainer.PERSISTENT_PROPERTY; //$NON-NLS-1$ /** - * Property: Auto-start the debugger after the agent launch. + * Property: Last selected simulator type */ - public static final String PROP_AUTO_START_DEBUGGER = "autoStartDebugger"; //$NON-NLS-1$ + public static final String PROP_SIM_TYPE = "SimulatorType" + IPropertiesContainer.PERSISTENT_PROPERTY; //$NON-NLS-1$ /** - * Property: Connect after the configuration has been created. + * Property: Auto-start the debugger after the agent launch. */ - public static final String PROP_AUTO_CONNECT = "autoConnect"; //$NON-NLS-1$ + public static final String PROP_AUTO_START_DEBUGGER = "autoStartDebugger" + IPropertiesContainer.PERSISTENT_PROPERTY; //$NON-NLS-1$ /** - * Property: Exclude from scanner process. If set to <code>true</code>, the node will not be scanned - * by the scanner. + * Property: Connect after the configuration has been created. */ - public static String PROP_SCANNER_EXCLUDE = "scanner.exclude.silent"; //$NON-NLS-1$ + public static final String PROP_AUTO_CONNECT = "autoConnect"; //$NON-NLS-1$ } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerModelProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerNodeProvider.java index f2174b990..82838e8d5 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerModelProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/nodes/IPeerNodeProvider.java @@ -1,26 +1,26 @@ -/*******************************************************************************
- * Copyright (c) 2011 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.locator.interfaces.nodes;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Interface to be implemented by nodes providing access to an peer
- * model object instance without being a peer model object itself.
- */
-public interface IPeerModelProvider extends IAdaptable {
-
- /**
- * Returns the associated peer model object.
- *
- * @return The peer model object instance or <code>null</code>.
- */
- public IPeerModel getPeerModel();
-}
+/******************************************************************************* + * Copyright (c) 2011 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.locator.interfaces.nodes; + +import org.eclipse.core.runtime.IAdaptable; + +/** + * Interface to be implemented by nodes providing access to an peer + * model object instance without being a peer model object itself. + */ +public interface IPeerNodeProvider extends IAdaptable { + + /** + * Returns the associated peer model object. + * + * @return The peer model object instance or <code>null</code>. + */ + public IPeerNode getPeerModel(); +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IDefaultContextService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IDefaultContextService.java index 4c9b33b4e..939490c63 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IDefaultContextService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IDefaultContextService.java @@ -10,12 +10,12 @@ package org.eclipse.tcf.te.tcf.locator.interfaces.services; import org.eclipse.tcf.te.runtime.services.interfaces.IService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Interface to implement by services providing a default context for others. * <p> - * The context type of the service is {@link IPeerModel}. + * The context type of the service is {@link IPeerNode}. */ public interface IDefaultContextService extends IService { @@ -32,17 +32,17 @@ public interface IDefaultContextService extends IService { * If the filter is matched, the peer model node is added to the list * of possible contexts. * - * @param peerModel The peer model node. Must not be <code>null</code>. + * @param peerNode The peer model node. Must not be <code>null</code>. * @return <code>true</code> if the given peer model node is a possible candidate. */ - public boolean select(IPeerModel peerModel); + public boolean select(IPeerNode peerNode); } /** * Return a list of possible candidates matching the given filter. * <p> * If a selection is given and the filter applies, the selection will be added first to the - * resulting array of candidates. Otherwise, if a default selection was set using {@link #setDefaultContext(IPeerModel)}, + * resulting array of candidates. Otherwise, if a default selection was set using {@link #setDefaultContext(IPeerNode)}, * and the filter applies, the default selection will added first to the resulting array of * candidates. * <p> @@ -54,16 +54,16 @@ public interface IDefaultContextService extends IService { * * @return An array of peer model nodes or an empty array. */ - public IPeerModel[] getCandidates(Object selection, IContextFilter filter); + public IPeerNode[] getCandidates(Object selection, IContextFilter filter); /** * Sets the given peer model node as new default context. * <p> * If the given peer model node is <code>null</code>, the default context is reseted. * - * @param peerModel The peer model node or <code>null</code>. + * @param peerNode The peer model node or <code>null</code>. */ - public void setDefaultContext(IPeerModel peerModel); + public void setDefaultContext(IPeerNode peerNode); /** * Returns the default context matching the given context filter. @@ -71,5 +71,5 @@ public interface IDefaultContextService extends IService { * @param filter The context filter or <code>null</code> * @return The default context if set and the filter applies, <code>null</code> otherwise. */ - public IPeerModel getDefaultContext(IContextFilter filter); + public IPeerNode getDefaultContext(IContextFilter filter); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/ILocatorModelLookupService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IPeerModelLookupService.java index 97e425baa..63121f94d 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/ILocatorModelLookupService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IPeerModelLookupService.java @@ -10,12 +10,12 @@ package org.eclipse.tcf.te.tcf.locator.interfaces.services; import org.eclipse.tcf.protocol.IPeer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * The service to lookup/search in the parent locator model. */ -public interface ILocatorModelLookupService extends ILocatorModelService { +public interface IPeerModelLookupService extends IPeerModelService { /** * Lookup the peer model for the given peer id. @@ -23,7 +23,7 @@ public interface ILocatorModelLookupService extends ILocatorModelService { * @param id The peer id. Must not be <code>null</code>. * @return The peer model instance, or <code>null</code> if the peer model cannot be found. */ - public IPeerModel lkupPeerModelById(String id); + public IPeerNode lkupPeerModelById(String id); /** * Lookup the peer model for the given peer id from the peers child list of @@ -33,7 +33,7 @@ public interface ILocatorModelLookupService extends ILocatorModelService { * @param id The peer id. Must not be <code>null</code>. * @return The peer model instance, or <code>null</code> if the peer model cannot be found. */ - public IPeerModel lkupPeerModelById(String parentId, String id); + public IPeerNode lkupPeerModelById(String parentId, String id); /** * Lookup the matching peer model instances for the given agent id. @@ -41,7 +41,7 @@ public interface ILocatorModelLookupService extends ILocatorModelService { * @param agentId The agent id. Must not be <code>null</code>. * @return The peer model instances, or an empty list if the given agent id could not be matched. */ - public IPeerModel[] lkupPeerModelByAgentId(String agentId); + public IPeerNode[] lkupPeerModelByAgentId(String agentId); /** * Lookup the matching peer model instances for the given agent id. @@ -50,7 +50,7 @@ public interface ILocatorModelLookupService extends ILocatorModelService { * @param agentId The agent id. Must not be <code>null</code>. * @return The peer model instances, or an empty list if the given agent id could not be matched. */ - public IPeerModel[] lkupPeerModelByAgentId(String parentId, String agentId); + public IPeerNode[] lkupPeerModelByAgentId(String parentId, String agentId); /** * Lookup matching peer model instances for the given name. @@ -58,7 +58,7 @@ public interface ILocatorModelLookupService extends ILocatorModelService { * @param name The name. Must not be <code>null</code>. * @return The peer model instances, or an empty list if the given name could not be matched. */ - public IPeerModel[] lkupPeerModelByName(String name); + public IPeerNode[] lkupPeerModelByName(String name); /** * Lookup matching peer model instances which supports the listed local and remote services. @@ -70,7 +70,7 @@ public interface ILocatorModelLookupService extends ILocatorModelService { * * @return The peer model instances, or an empty list if the listed services are not supported by any of the peers. */ - public IPeerModel[] lkupPeerModelBySupportedServices(String[] expectedLocalServices, String[] expectedRemoteServices); + public IPeerNode[] lkupPeerModelBySupportedServices(String[] expectedLocalServices, String[] expectedRemoteServices); /** * Lookup the matching static peer model instances for the given peer model node. @@ -78,7 +78,7 @@ public interface ILocatorModelLookupService extends ILocatorModelService { * @param peerNode The peer model node. Must not be <code>null</code>. * @return The matching peer model instances or an empty list. */ - public IPeerModel[] lkupMatchingStaticPeerModels(IPeerModel peerNode); + public IPeerNode[] lkupMatchingStaticPeerModels(IPeerNode peerNode); /** * Lookup the matching static peer model instances for the given peer. @@ -86,5 +86,5 @@ public interface ILocatorModelLookupService extends ILocatorModelService { * @param peer The peer or <code>null</code>. * @return The matching peer model instances or an empty list. */ - public IPeerModel[] lkupMatchingStaticPeerModels(IPeer peer); + public IPeerNode[] lkupMatchingStaticPeerModels(IPeer peer); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/ILocatorModelPeerNodeQueryService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IPeerModelQueryService.java index 75a5982e3..70c937814 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/ILocatorModelPeerNodeQueryService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IPeerModelQueryService.java @@ -9,12 +9,12 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.locator.interfaces.services; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * The service to query asynchronous properties of peers. */ -public interface ILocatorModelPeerNodeQueryService extends ILocatorModelService { +public interface IPeerModelQueryService extends IPeerModelService { /** * Query the list of available local services for the given peer. @@ -27,7 +27,7 @@ public interface ILocatorModelPeerNodeQueryService extends ILocatorModelService * @param node The peer node. Must not be <code>null</code>. * @param done The client callback. Must not be <code>null</code>. */ - public String queryLocalServices(IPeerModel node); + public String queryLocalServices(IPeerNode node); /** * Query the list of available remote services for the given peer. @@ -40,7 +40,7 @@ public interface ILocatorModelPeerNodeQueryService extends ILocatorModelService * @param node The peer node. Must not be <code>null</code>. * @param done The client callback. Must not be <code>null</code>. */ - public String queryRemoteServices(IPeerModel node); + public String queryRemoteServices(IPeerNode node); /** * Client call back interface for queryServicesAsync(...). @@ -62,6 +62,6 @@ public interface ILocatorModelPeerNodeQueryService extends ILocatorModelService * @param node The peer node. Must not be <code>null</code>. * @param done The client callback. Must not be <code>null</code>. */ - public void queryServicesAsync(IPeerModel node, DoneQueryServices done); + public void queryServicesAsync(IPeerNode node, DoneQueryServices done); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/ILocatorModelRefreshService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IPeerModelRefreshService.java index 85e655f97..dc683ea76 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/ILocatorModelRefreshService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IPeerModelRefreshService.java @@ -10,12 +10,12 @@ package org.eclipse.tcf.te.tcf.locator.interfaces.services; import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * The service to refresh the parent locator model from remote. */ -public interface ILocatorModelRefreshService extends ILocatorModelService { +public interface IPeerModelRefreshService extends IPeerModelService { /** * Refreshes the list of known peers from the local locator service @@ -37,5 +37,5 @@ public interface ILocatorModelRefreshService extends ILocatorModelService { * @param nodes The list of nodes to refresh or <code>null</code> to refresh all. * @param callback The callback to invoke once the refresh operation finished, or <code>null</code>. */ - public void refreshAgentIDs(IPeerModel[] nodes, ICallback callback); + public void refreshAgentIDs(IPeerNode[] nodes, ICallback callback); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/ILocatorModelService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IPeerModelService.java index 2cb869948..553c7f986 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/ILocatorModelService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IPeerModelService.java @@ -3,25 +3,24 @@ * 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 - * + * * Contributors: * Wind River Systems - initial API and implementation *******************************************************************************/ package org.eclipse.tcf.te.tcf.locator.interfaces.services; import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; - +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; /** - * Common parent interface for locator model services. + * Common parent interface for peer model services. */ -public interface ILocatorModelService extends IAdaptable { +public interface IPeerModelService extends IAdaptable { /** - * Returns the parent locator model. + * Returns the parent peer model. * - * @return The parent locator model. + * @return The parent peer model. */ - public ILocatorModel getLocatorModel(); + public IPeerModel getPeerModel(); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/ILocatorModelUpdateService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IPeerModelUpdateService.java index 7b564ce90..ca2734a98 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/ILocatorModelUpdateService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/services/IPeerModelUpdateService.java @@ -12,13 +12,13 @@ package org.eclipse.tcf.te.tcf.locator.interfaces.services; import java.util.Collection; import org.eclipse.tcf.protocol.IPeer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * The service to update the properties of given locator model nodes. */ -public interface ILocatorModelUpdateService extends ILocatorModelService { +public interface IPeerModelUpdateService extends IPeerModelService { /** * Adds the given peer to the list of know peers. @@ -27,14 +27,14 @@ public interface ILocatorModelUpdateService extends ILocatorModelService { * * @param peer The peer model object. Must not be <code>null</code>. */ - public void add(IPeerModel peer); + public void add(IPeerNode peer); /** * Removes the given peer from the list of known peers. * * @param peer The peer model object. Must not be <code>null</code. */ - public void remove(IPeerModel peer); + public void remove(IPeerNode peer); /** * Update the service nodes of the given peer node with the new set of @@ -44,31 +44,31 @@ public interface ILocatorModelUpdateService extends ILocatorModelService { * @param localServices The list of local service names or <code>null</code>. * @param remoteServices The list of remote service names or <code>null</code>. */ - public void updatePeerServices(IPeerModel peerNode, Collection<String> localServices, Collection<String> remoteServices); + public void updatePeerServices(IPeerNode peerNode, Collection<String> localServices, Collection<String> remoteServices); /** * Adds the given child peer to the parent peer. * <p> - * <b>Note:</b> The parent peer node is determined by calling {@link IPeerModel#getParentNode()}. - * The call has to return a non-null value, otherwise {@link #addChild(IPeerModel)} + * <b>Note:</b> The parent peer node is determined by calling {@link IPeerNode#getParentNode()}. + * The call has to return a non-null value, otherwise {@link #addChild(IPeerNode)} * will do nothing. * * @param parent The parent peer model node. Must not be <code>null</code>. * @param child The child peer model object. Must not be <code>null</code>. */ - public void addChild(IPeerModel child); + public void addChild(IPeerNode child); /** * Removes the given child peer from the parent peer. * <p> - * <b>Note:</b> The parent peer node is determined by calling {@link IPeerModel#getParentNode()}. - * The call has to return a non-null value, otherwise {@link #removeChild(IPeerModel)} + * <b>Note:</b> The parent peer node is determined by calling {@link IPeerNode#getParentNode()}. + * The call has to return a non-null value, otherwise {@link #removeChild(IPeerNode)} * will do nothing. * * @param parent The parent peer model node. Must not be <code>null</code>. * @param child The child peer model object. Must not be <code>null</code>. */ - public void removeChild(IPeerModel child); + public void removeChild(IPeerNode child); /** * Merge user defined peer attributes from the given peer into the given peer node. @@ -77,5 +77,5 @@ public interface ILocatorModelUpdateService extends ILocatorModelService { * @param peer The peer. Must not be <code>null</code>. * @param force If <code>true</code>, the peer attributes are merged even if the peer id's don't match. */ - public void mergeUserDefinedAttributes(IPeerModel node, IPeer peer, boolean force); + public void mergeUserDefinedAttributes(IPeerNode node, IPeer peer, boolean force); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/ModelNodeFactoryDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/ModelNodeFactoryDelegate.java index cfc145c60..142c4efed 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/ModelNodeFactoryDelegate.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/ModelNodeFactoryDelegate.java @@ -1,68 +1,61 @@ -/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.locator.internal;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-import org.eclipse.tcf.protocol.IPeer;
-import org.eclipse.tcf.protocol.Protocol;
-import org.eclipse.tcf.te.runtime.model.factory.AbstractFactoryDelegate2;
-import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-import org.eclipse.tcf.te.tcf.locator.internal.nodes.InvalidPeerModel;
-import org.eclipse.tcf.te.tcf.locator.nodes.PeerModel;
-
-/**
- * Locator model node factory delegate implementation.
- */
-public class ModelNodeFactoryDelegate extends AbstractFactoryDelegate2 {
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.model.interfaces.factory.IFactoryDelegate#newInstance(java.lang.Class)
- */
- @SuppressWarnings("unchecked")
- @Override
- public <V extends IModelNode> V newInstance(Class<V> nodeInterface) {
- if (IPeerModel.class.equals(nodeInterface)) {
- return (V) new InvalidPeerModel();
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.model.interfaces.factory.IFactoryDelegate2#newInstance(java.lang.Class, java.lang.Object[])
- */
- @SuppressWarnings("unchecked")
- @Override
- public <V extends IModelNode> V newInstance(final Class<V> nodeInterface, final Object[] args) {
- if (args == null) return newInstance(nodeInterface);
-
- if (IPeerModel.class.equals(nodeInterface)) {
- // Peer model constructor has 2 arguments, ILocatorModel and IPeer
- if (args.length == 2 && args[0] instanceof ILocatorModel && args[1] instanceof IPeer) {
- final AtomicReference<V> node = new AtomicReference<V>();
-
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- node.set((V) new PeerModel((ILocatorModel)args[0], (IPeer)args[1]));
- }
- };
- if (Protocol.isDispatchThread()) runnable.run();
- else Protocol.invokeAndWait(runnable);
-
- return node.get();
- }
- }
-
- return null;
- }
-}
+/******************************************************************************* + * Copyright (c) 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.locator.internal; + +import java.util.concurrent.atomic.AtomicReference; + +import org.eclipse.tcf.protocol.IPeer; +import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.runtime.model.factory.AbstractFactoryDelegate2; +import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.nodes.PeerNode; + +/** + * Locator model node factory delegate implementation. + */ +public class ModelNodeFactoryDelegate extends AbstractFactoryDelegate2 { + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.model.interfaces.factory.IFactoryDelegate#newInstance(java.lang.Class) + */ + @Override + public <V extends IModelNode> V newInstance(Class<V> nodeInterface) { + return newInstance(nodeInterface, new Object[0]); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.model.interfaces.factory.IFactoryDelegate2#newInstance(java.lang.Class, java.lang.Object[]) + */ + @SuppressWarnings("unchecked") + @Override + public <V extends IModelNode> V newInstance(final Class<V> nodeInterface, final Object[] args) { + if (IPeerNode.class.equals(nodeInterface)) { + // Peer model constructor has 2 arguments, IPeerModel and IPeer + if (args != null && args.length == 2 && args[0] instanceof IPeerModel && args[1] instanceof IPeer) { + final AtomicReference<V> node = new AtomicReference<V>(); + + Runnable runnable = new Runnable() { + @Override + public void run() { + node.set((V) new PeerNode((IPeerModel)args[0], (IPeer)args[1])); + } + }; + if (Protocol.isDispatchThread()) runnable.run(); + else Protocol.invokeAndWait(runnable); + + return node.get(); + } + } + + return null; + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/LocatorModelPropertyTester.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/PeerModelPropertyTester.java index 2ea867dfa..572fd793e 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/LocatorModelPropertyTester.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/PeerModelPropertyTester.java @@ -21,16 +21,16 @@ import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.tcf.locator.activator.CoreBundleActivator; import org.eclipse.tcf.te.tcf.locator.interfaces.ITracing; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; /** * Locator model property tester. */ -public class LocatorModelPropertyTester extends PropertyTester { +public class PeerModelPropertyTester extends PropertyTester { /* (non-Javadoc) * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object) @@ -38,25 +38,25 @@ public class LocatorModelPropertyTester extends PropertyTester { @Override public boolean test(Object receiver, final String property, final Object[] args, final Object expectedValue) { if (receiver instanceof IPeer) { - receiver = Platform.getAdapterManager().getAdapter(receiver, IPeerModel.class); + receiver = Platform.getAdapterManager().getAdapter(receiver, IPeerNode.class); } // The receiver is expected to be a peer model node or a peer - if (receiver instanceof IPeerModel) { - final IPeerModel peerModel = (IPeerModel)receiver; + if (receiver instanceof IPeerNode) { + final IPeerNode peerNode = (IPeerNode)receiver; final AtomicBoolean result = new AtomicBoolean(); // If we have to test for local or remote services, we have to handle it special if ("hasLocalService".equals(property) || "hasRemoteService".equals(property)) { //$NON-NLS-1$ //$NON-NLS-2$ // This tests must happen outside the TCF dispatch thread's if (!Protocol.isDispatchThread()) { - result.set(testServices(peerModel, property, args, expectedValue)); + result.set(testServices(peerNode, property, args, expectedValue)); } } else { Runnable runnable = new Runnable() { @Override public void run() { - result.set(testPeerModel(peerModel, property, args, expectedValue)); + result.set(testPeerModel(peerNode, property, args, expectedValue)); } }; @@ -84,11 +84,11 @@ public class LocatorModelPropertyTester extends PropertyTester { * @return <code>True</code> if the property to test has the expected value, <code>false</code> * otherwise. */ - protected boolean testPeerModel(IPeerModel peerModel, String property, Object[] args, Object expectedValue) { - Assert.isNotNull(peerModel); + protected boolean testPeerModel(IPeerNode peerNode, String property, Object[] args, Object expectedValue) { + Assert.isNotNull(peerNode); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - IPeer peer = peerModel.getPeer(); + IPeer peer = peerNode.getPeer(); if ("name".equals(property)) { //$NON-NLS-1$ if (peer.getName() != null && peer.getName().equals(expectedValue)) { @@ -145,7 +145,7 @@ public class LocatorModelPropertyTester extends PropertyTester { } if ("isOfType".equals(property)) { //$NON-NLS-1$ - String value = peer.getAttributes().get(IPeerModelProperties.PROP_TYPE); + String value = peer.getAttributes().get(IPeerNodeProperties.PROP_TYPE); if (expectedValue instanceof String) { return value != null ? ((String)expectedValue).equals(value) : ((String)expectedValue).equalsIgnoreCase("null"); //$NON-NLS-1$ } @@ -168,8 +168,8 @@ public class LocatorModelPropertyTester extends PropertyTester { } if ("hasOfflineService".equals(property)) { //$NON-NLS-1$ - String offlineServices = peer.getAttributes().get(IPeerModelProperties.PROP_OFFLINE_SERVICES); - String remoteServices = peerModel.getStringProperty(IPeerModelProperties.PROP_REMOTE_SERVICES); + String offlineServices = peer.getAttributes().get(IPeerNodeProperties.PROP_OFFLINE_SERVICES); + String remoteServices = peerNode.getStringProperty(IPeerNodeProperties.PROP_REMOTE_SERVICES); List<String> offline = offlineServices != null ? Arrays.asList(offlineServices.split(",\\s*")) : Collections.EMPTY_LIST; //$NON-NLS-1$ List<String> remote = remoteServices != null ? Arrays.asList(remoteServices.split(",\\s*")) : null; //$NON-NLS-1$ boolean hasOfflineService = (remote == null) ? offline.contains(expectedValue) : remote.contains(expectedValue); @@ -195,14 +195,14 @@ public class LocatorModelPropertyTester extends PropertyTester { * @return <code>True</code> if the property to test has the expected value, <code>false</code> * otherwise. */ - protected boolean testServices(final IPeerModel node, final String property, final Object[] args, final Object expectedValue) { + protected boolean testServices(final IPeerNode node, final String property, final Object[] args, final Object expectedValue) { Assert.isNotNull(node); Assert.isTrue(!Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ String services = null; - ILocatorModel model = node.getModel(); - ILocatorModelPeerNodeQueryService queryService = model.getService(ILocatorModelPeerNodeQueryService.class); + IPeerModel model = node.getModel(); + IPeerModelQueryService queryService = model.getService(IPeerModelQueryService.class); if ("hasLocalService".equals(property)) { //$NON-NLS-1$ services = queryService.queryLocalServices(node); } else { @@ -211,7 +211,7 @@ public class LocatorModelPropertyTester extends PropertyTester { if (CoreBundleActivator.getTraceHandler().isSlotEnabled(ITracing.ID_TRACE_PROPERTY_TESTER)) { CoreBundleActivator.getTraceHandler().trace("testServices: property = " + property + ", expectedValue = " + expectedValue + ", services = " + services, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - ITracing.ID_TRACE_PROPERTY_TESTER, LocatorModelPropertyTester.this); + ITracing.ID_TRACE_PROPERTY_TESTER, PeerModelPropertyTester.this); } if (services != null) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/SimulatorPropertyTester.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/SimulatorPropertyTester.java index 75cfbfb82..55a11c9c0 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/SimulatorPropertyTester.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/SimulatorPropertyTester.java @@ -11,7 +11,7 @@ package org.eclipse.tcf.te.tcf.locator.internal; import org.eclipse.tcf.te.runtime.services.interfaces.ISimulatorService.State; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.utils.SimulatorUtils; import org.eclipse.tcf.te.tcf.locator.utils.SimulatorUtils.Result; @@ -27,9 +27,9 @@ public class SimulatorPropertyTester extends org.eclipse.core.expressions.Proper */ @Override public boolean test(final Object receiver, String property, Object[] args, Object expectedValue) { - if (receiver instanceof IPeerModel) { - final IPeerModel peerModel = (IPeerModel) receiver; - Result result = SimulatorUtils.getSimulatorService(peerModel); + if (receiver instanceof IPeerNode) { + final IPeerNode peerNode = (IPeerNode) receiver; + Result result = SimulatorUtils.getSimulatorService(peerNode); if (result.service != null) { if ("isSimulatorState".equals(property) && expectedValue instanceof String) { //$NON-NLS-1$ diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/AdapterFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/AdapterFactory.java index 5f698a49d..cdbede25b 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/AdapterFactory.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/AdapterFactory.java @@ -20,10 +20,10 @@ import org.eclipse.tcf.te.core.interfaces.IConnectable; import org.eclipse.tcf.te.runtime.model.factory.Factory; import org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableURIProvider; import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; /** @@ -34,7 +34,7 @@ public class AdapterFactory implements IAdapterFactory { private final IPersistableURIProvider peerModelPersistableURIProvider = new PeerPersistableURIProvider(); private static final Class<?>[] CLASSES = new Class[] { - IPersistableURIProvider.class, IPeerModel.class, IConnectable.class, ILocatorModel.class + IPersistableURIProvider.class, IPeerNode.class, IConnectable.class, IPeerModel.class }; /* (non-Javadoc) @@ -52,30 +52,30 @@ public class AdapterFactory implements IAdapterFactory { return adaptableObject; } } - if (ILocatorModel.class.isAssignableFrom(adapterType)) { - if (adaptableObject instanceof IPeerModel) { - return ((IPeerModel)adaptableObject).getModel(); + if (IPeerModel.class.isAssignableFrom(adapterType)) { + if (adaptableObject instanceof IPeerNode) { + return ((IPeerNode)adaptableObject).getModel(); } } - if (adaptableObject instanceof IPeerModel || adaptableObject instanceof IPeer || adaptableObject instanceof IPeerModelProvider) { + if (adaptableObject instanceof IPeerNode || adaptableObject instanceof IPeer || adaptableObject instanceof IPeerNodeProvider) { if (IPersistableURIProvider.class.equals(adapterType)) { return peerModelPersistableURIProvider; } - if (IPeerModel.class.equals(adapterType)) { + if (IPeerNode.class.equals(adapterType)) { if (adaptableObject instanceof IPeer) { - final AtomicReference<IPeerModel> node = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> node = new AtomicReference<IPeerNode>(); final IPeer peer = (IPeer)adaptableObject; Runnable runnable = new Runnable() { @Override public void run() { String id = peer.getID(); - ILocatorModel model = Model.getModel(); + IPeerModel model = Model.getModel(); Assert.isNotNull(model); - IPeerModel candidate = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(id); + IPeerNode candidate = model.getService(IPeerModelLookupService.class).lkupPeerModelById(id); if (candidate != null) node.set(candidate); else { - candidate = Factory.getInstance().newInstance(IPeerModel.class, new Object[] { model, peer }); + candidate = Factory.getInstance().newInstance(IPeerNode.class, new Object[] { model, peer }); if (candidate != null) node.set(candidate); } } @@ -86,12 +86,12 @@ public class AdapterFactory implements IAdapterFactory { return node.get(); } - else if (adaptableObject instanceof IPeerModel) { + else if (adaptableObject instanceof IPeerNode) { return adaptableObject; } - else if (adaptableObject instanceof IPeerModelProvider) { - final AtomicReference<IPeerModel> node = new AtomicReference<IPeerModel>(); - final IPeerModelProvider provider = (IPeerModelProvider)adaptableObject; + else if (adaptableObject instanceof IPeerNodeProvider) { + final AtomicReference<IPeerNode> node = new AtomicReference<IPeerNode>(); + final IPeerNodeProvider provider = (IPeerNodeProvider)adaptableObject; Runnable runnable = new Runnable() { @Override @@ -107,8 +107,8 @@ public class AdapterFactory implements IAdapterFactory { } } if (IStepContext.class.equals(adapterType)) { - if (adaptableObject instanceof IPeerModel) { - return new PeerModelStepContext((IPeerModel)adaptableObject); + if (adaptableObject instanceof IPeerNode) { + return new PeerNodeStepContext((IPeerNode)adaptableObject); } } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/PeerModelStepContext.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/PeerNodeStepContext.java index 440760606..f73e853fd 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/PeerModelStepContext.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/PeerNodeStepContext.java @@ -11,26 +11,26 @@ package org.eclipse.tcf.te.tcf.locator.internal.adapters; import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.te.runtime.stepper.context.AbstractStepContext; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Peer model step context implementation. */ -public class PeerModelStepContext extends AbstractStepContext { +public class PeerNodeStepContext extends AbstractStepContext { /** * Constructor */ - public PeerModelStepContext(IPeerModel peerModel) { - super(peerModel); + public PeerNodeStepContext(IPeerNode peerNode) { + super(peerNode); } /** * Returns the peer model. * @return The peer model. */ - public IPeerModel getPeerModel() { - return (IPeerModel)getContextObject(); + public IPeerNode getPeerModel() { + return (IPeerNode)getContextObject(); } /* (non-Javadoc) @@ -54,7 +54,7 @@ public class PeerModelStepContext extends AbstractStepContext { */ @Override public Object getAdapter(final Class adapter) { - if (IPeerModel.class.equals(adapter)) { + if (IPeerNode.class.equals(adapter)) { return getPeerModel(); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/PeerPersistableURIProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/PeerPersistableURIProvider.java index eaad3b69a..2ecb42a3f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/PeerPersistableURIProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/adapters/PeerPersistableURIProvider.java @@ -1,109 +1,109 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.locator.internal.adapters;
-
-import java.net.URI;
-import java.util.concurrent.atomic.AtomicReference;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.tcf.protocol.IPeer;
-import org.eclipse.tcf.protocol.Protocol;
-import org.eclipse.tcf.te.core.adapters.ModelNodePersistableURIProvider;
-import org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableNodeProperties;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider;
-import org.eclipse.tcf.te.tcf.locator.model.ModelLocationUtil;
-
-/**
- * Persistable implementation handling peer attributes.
- */
-public class PeerPersistableURIProvider extends ModelNodePersistableURIProvider {
-
- /**
- * Determine the peer from the given context object.
- *
- * @param context The context object or <code>null</code>.
- * @return The peer or <code>null</code>.
- */
- private IPeer getPeer(Object context) {
- IPeer peer = null;
-
- if (context instanceof IPeer) {
- peer = (IPeer)context;
- }
- else if (context instanceof IPeerModel) {
- peer = ((IPeerModel)context).getPeer();
- }
- else if (context instanceof IPeerModelProvider) {
- peer = ((IPeerModelProvider)context).getPeerModel().getPeer();
- }
-
- return peer;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableURIProvider#getURI(java.lang.Object)
- */
- @Override
- public URI getURI(final Object context) {
- Assert.isNotNull(context);
-
- URI uri = null;
- final IPeer peer = getPeer(context);
-
- if (peer != null) {
- // Get the URI the peer model has been created from
- final AtomicReference<URI> nodeURI = new AtomicReference<URI>();
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- String value = peer.getAttributes().get(IPersistableNodeProperties.PROPERTY_URI);
- if (value != null && !"".equals(value.trim())) { //$NON-NLS-1$
- nodeURI.set(URI.create(value.trim()));
- }
- }
- };
- if (Protocol.isDispatchThread()) {
- runnable.run();
- }
- else {
- Protocol.invokeAndWait(runnable);
- }
-
- if (nodeURI.get() != null) {
- uri = nodeURI.get();
- }
-
- if (uri == null) {
- String name = peer.getName();
- if (name == null) {
- name = peer.getID();
- }
- name = makeValidFileSystemName(name);
- // Get the URI from the name
- uri = getRoot().append(name).toFile().toURI();
-
- }
- }
-
- return uri;
- }
-
- /**
- * Returns the root location of the peers storage.
- *
- * @return The root location or <code>null</code> if it cannot be determined.
- */
- @Override
- public IPath getRoot() {
- return ModelLocationUtil.getStaticPeersRootLocation();
- }
-}
+/******************************************************************************* + * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.locator.internal.adapters; + +import java.net.URI; +import java.util.concurrent.atomic.AtomicReference; + +import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.IPath; +import org.eclipse.tcf.protocol.IPeer; +import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.core.adapters.ModelNodePersistableURIProvider; +import org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; +import org.eclipse.tcf.te.tcf.locator.model.ModelLocationUtil; + +/** + * Persistable implementation handling peer attributes. + */ +public class PeerPersistableURIProvider extends ModelNodePersistableURIProvider { + + /** + * Determine the peer from the given context object. + * + * @param context The context object or <code>null</code>. + * @return The peer or <code>null</code>. + */ + private IPeer getPeer(Object context) { + IPeer peer = null; + + if (context instanceof IPeer) { + peer = (IPeer)context; + } + else if (context instanceof IPeerNode) { + peer = ((IPeerNode)context).getPeer(); + } + else if (context instanceof IPeerNodeProvider) { + peer = ((IPeerNodeProvider)context).getPeerModel().getPeer(); + } + + return peer; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableURIProvider#getURI(java.lang.Object) + */ + @Override + public URI getURI(final Object context) { + Assert.isNotNull(context); + + URI uri = null; + final IPeer peer = getPeer(context); + + if (peer != null) { + // Get the URI the peer model has been created from + final AtomicReference<URI> nodeURI = new AtomicReference<URI>(); + Runnable runnable = new Runnable() { + @Override + public void run() { + String value = peer.getAttributes().get(IPersistableNodeProperties.PROPERTY_URI); + if (value != null && !"".equals(value.trim())) { //$NON-NLS-1$ + nodeURI.set(URI.create(value.trim())); + } + } + }; + if (Protocol.isDispatchThread()) { + runnable.run(); + } + else { + Protocol.invokeAndWait(runnable); + } + + if (nodeURI.get() != null) { + uri = nodeURI.get(); + } + + if (uri == null) { + String name = peer.getName(); + if (name == null) { + name = peer.getID(); + } + name = makeValidFileSystemName(name); + // Get the URI from the name + uri = getRoot().append(name).toFile().toURI(); + + } + } + + return uri; + } + + /** + * Returns the root location of the peers storage. + * + * @return The root location or <code>null</code> if it cannot be determined. + */ + @Override + public IPath getRoot() { + return ModelLocationUtil.getStaticPeersRootLocation(); + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/nodes/InvalidPeerModel.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/nodes/InvalidPeerModel.java deleted file mode 100644 index 431592035..000000000 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/nodes/InvalidPeerModel.java +++ /dev/null @@ -1,538 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012 Wind River Systems, Inc. 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 - * - * Contributors: - * Wind River Systems - initial API and implementation - *******************************************************************************/ -package org.eclipse.tcf.te.tcf.locator.internal.nodes; - -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.jobs.ISchedulingRule; -import org.eclipse.tcf.protocol.IPeer; -import org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode; -import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode; -import org.eclipse.tcf.te.runtime.model.interfaces.factory.IFactoryDelegate; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.internal.ModelNodeFactoryDelegate; - -/** - * Invalid peer model node implementation. All methods does throw an {@link IllegalStateException}. - * <p> - * Objects of this class are returned by the {@link ModelNodeFactoryDelegate} if calling - * {@link IFactoryDelegate#newInstance(Class)}. All what objects of this class can be used for is - * loading adapters. - */ -public final class InvalidPeerModel implements IPeerModel { - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode#add(org.eclipse.tcf.te.runtime.model.interfaces.IModelNode) - */ - @Override - public boolean add(IModelNode child) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode#remove(org.eclipse.tcf.te.runtime.model.interfaces.IModelNode, boolean) - */ - @Override - public boolean remove(IModelNode node, boolean recursive) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode#clear() - */ - @Override - public boolean clear() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode#removeAll(java.lang.Class) - */ - @Override - public <T> boolean removeAll(Class<T> nodeType) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode#getChildren() - */ - @Override - public IModelNode[] getChildren() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode#getChildren(java.lang.Class) - */ - @Override - public <T> List<T> getChildren(Class<T> nodeType) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode#hasChildren() - */ - @Override - public boolean hasChildren() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode#size() - */ - @Override - public int size() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode#contains(org.eclipse.tcf.te.runtime.model.interfaces.IModelNode) - */ - @Override - public boolean contains(IModelNode node) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#getParent() - */ - @Override - public IContainerModelNode getParent() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#getParent(java.lang.Class) - */ - @Override - public <V extends IContainerModelNode> V getParent(Class<V> nodeType) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#setParent(org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode) - */ - @Override - public void setParent(IContainerModelNode parent) throws IllegalStateException { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#move(org.eclipse.tcf.te.runtime.model.interfaces.IContainerModelNode) - */ - @Override - public void move(IContainerModelNode newParent) throws IllegalStateException { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#isVisible() - */ - @Override - public boolean isVisible() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#getName() - */ - @Override - public String getName() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#getImageId() - */ - @Override - public String getImageId() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#getError() - */ - @Override - public String getError() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#getDescription() - */ - @Override - public String[] getDescription() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#setDirty(boolean) - */ - @Override - public void setDirty(boolean dirty) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#isDirty() - */ - @Override - public boolean isDirty() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#setPending(boolean) - */ - @Override - public void setPending(boolean pending) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#isPending() - */ - @Override - public boolean isPending() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.interfaces.IModelNode#find(java.util.UUID) - */ - @Override - public IModelNode find(UUID uuid) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#getUUID() - */ - @Override - public UUID getUUID() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#setChangeEventsEnabled(boolean) - */ - @Override - public boolean setChangeEventsEnabled(boolean enabled) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#changeEventsEnabled() - */ - @Override - public boolean changeEventsEnabled() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#fireChangeEvent(java.lang.String, java.lang.Object, java.lang.Object) - */ - @Override - public void fireChangeEvent(String key, Object oldValue, Object newValue) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#setProperties(java.util.Map) - */ - @Override - public void setProperties(Map<String, Object> properties) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#setProperty(java.lang.String, java.lang.Object) - */ - @Override - public boolean setProperty(String key, Object value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#setProperty(java.lang.String, long) - */ - @Override - public boolean setProperty(String key, long value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#setProperty(java.lang.String, int) - */ - @Override - public boolean setProperty(String key, int value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#setProperty(java.lang.String, boolean) - */ - @Override - public boolean setProperty(String key, boolean value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#setProperty(java.lang.String, float) - */ - @Override - public boolean setProperty(String key, float value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#setProperty(java.lang.String, double) - */ - @Override - public boolean setProperty(String key, double value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#getProperties() - */ - @Override - public Map<String, Object> getProperties() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#getProperty(java.lang.String) - */ - @Override - public Object getProperty(String key) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#getStringProperty(java.lang.String) - */ - @Override - public String getStringProperty(String key) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#getLongProperty(java.lang.String) - */ - @Override - public long getLongProperty(String key) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#getIntProperty(java.lang.String) - */ - @Override - public int getIntProperty(String key) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#getBooleanProperty(java.lang.String) - */ - @Override - public boolean getBooleanProperty(String key) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#getFloatProperty(java.lang.String) - */ - @Override - public float getFloatProperty(String key) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#getDoubleProperty(java.lang.String) - */ - @Override - public double getDoubleProperty(String key) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#clearProperties() - */ - @Override - public void clearProperties() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#isEmpty() - */ - @Override - public boolean isEmpty() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#isPropertyIgnoreCase(java.lang.String, java.lang.String) - */ - @Override - public boolean isPropertyIgnoreCase(String key, String value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#isProperty(java.lang.String, java.lang.Object) - */ - @Override - public boolean isProperty(String key, Object value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#isProperty(java.lang.String, long) - */ - @Override - public boolean isProperty(String key, long value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#isProperty(java.lang.String, int) - */ - @Override - public boolean isProperty(String key, int value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#isProperty(java.lang.String, boolean) - */ - @Override - public boolean isProperty(String key, boolean value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#isProperty(java.lang.String, float) - */ - @Override - public boolean isProperty(String key, float value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#isProperty(java.lang.String, double) - */ - @Override - public boolean isProperty(String key, double value) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) - */ - @Override - public Object getAdapter(Class adapter) { - return Platform.getAdapterManager().getAdapter(this, adapter); - } - - /* (non-Javadoc) - * @see org.eclipse.core.runtime.jobs.ISchedulingRule#contains(org.eclipse.core.runtime.jobs.ISchedulingRule) - */ - @Override - public boolean contains(ISchedulingRule rule) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.core.runtime.jobs.ISchedulingRule#isConflicting(org.eclipse.core.runtime.jobs.ISchedulingRule) - */ - @Override - public boolean isConflicting(ISchedulingRule rule) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#getModel() - */ - @Override - public ILocatorModel getModel() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#getPeer() - */ - @Override - public IPeer getPeer() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#getPeerId() - */ - @Override - public String getPeerId() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#getRemotePeerId() - */ - @Override - public String getRemotePeerId() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#isComplete() - */ - @Override - public boolean isComplete() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#isStatic() - */ - @Override - public boolean isStatic() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#isRemote() - */ - @Override - public boolean isRemote() { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#addProperties(java.util.Map) - */ - @Override - public void addProperties(Map<String, ?> properties) { - throw new IllegalStateException(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer#containsKey(java.lang.String) - */ - @Override - public boolean containsKey(String key) { - throw new IllegalStateException(); - } -} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/services/PropertiesAccessService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/services/PropertiesAccessService.java index f7020a334..9af952156 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/services/PropertiesAccessService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/internal/services/PropertiesAccessService.java @@ -16,7 +16,7 @@ import java.util.Map; import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.services.interfaces.constants.IPropertiesAccessServiceConstants; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Peer model properties access service implementation. @@ -30,13 +30,22 @@ public class PropertiesAccessService extends org.eclipse.tcf.te.tcf.core.model.s public Map<String, String> getTargetAddress(Object context) { final Map<String, String> result = new HashMap<String, String>(); - if (context instanceof IPeerModel) { - final IPeerModel peerModel = (IPeerModel) context; + final IPeer peer; + if (context instanceof IPeer) { + peer = (IPeer)context; + } + else if (context instanceof IPeerNode) { + peer = ((IPeerNode)context).getPeer(); + } + else { + peer = null; + } - Runnable runnable = new Runnable() { + if (peer != null) { + Protocol.invokeAndWait(new Runnable() { @Override public void run() { - Map<String, String> attributes = peerModel.getPeer().getAttributes(); + Map<String, String> attributes = peer.getAttributes(); String value = attributes.get(IPeer.ATTR_NAME); if (value != null && !"".equals(value.trim())) { //$NON-NLS-1$ @@ -52,10 +61,7 @@ public class PropertiesAccessService extends org.eclipse.tcf.te.tcf.core.model.s result.put(IPropertiesAccessServiceConstants.PROP_PORT, value); } } - }; - - if (Protocol.isDispatchThread()) runnable.run(); - else Protocol.invokeAndWait(runnable); + }); } return !result.isEmpty() ? Collections.unmodifiableMap(result) : null; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/AbstractPeerModelStepGroupIterator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/AbstractPeerNodeStepGroupIterator.java index 52e840308..254e83209 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/AbstractPeerModelStepGroupIterator.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/AbstractPeerNodeStepGroupIterator.java @@ -1,46 +1,46 @@ -/*******************************************************************************
- * Copyright (c) 2013 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.tcf.te.tcf.locator.iterators;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext;
-import org.eclipse.tcf.te.tcf.core.iterators.AbstractPeerStepGroupIterator;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-
-/**
- * Abstract launch stepgroup iterator.
- */
-public abstract class AbstractPeerModelStepGroupIterator extends AbstractPeerStepGroupIterator {
-
- /**
- * Returns the active peer model context that is currently used.
- *
- * @param context The step context. Must not be <code>null</code>.
- * @param data The data giving object. Must not be <code>null</code>.
- * @param fullQualifiedId The full qualfied id for this step. Must not be <code>null</code>.
- * @return The active peer model context.
- */
- protected IPeerModel getActivePeerModelContext(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId) {
- Object activeContext = getActiveContext(context, data, fullQualifiedId);
- IPeerModel peerModel = null;
- if (activeContext instanceof IPeerModel)
- return (IPeerModel)activeContext;
- if (activeContext instanceof IAdaptable)
- peerModel = (IPeerModel)((IAdaptable)activeContext).getAdapter(IPeerModel.class);
- if (peerModel == null)
- peerModel = (IPeerModel)Platform.getAdapterManager().getAdapter(activeContext, IPeerModel.class);
-
- return peerModel;
- }
-}
+/******************************************************************************* + * Copyright (c) 2013 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ + +package org.eclipse.tcf.te.tcf.locator.iterators; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.Platform; +import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; +import org.eclipse.tcf.te.tcf.core.iterators.AbstractPeerStepGroupIterator; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; + +/** + * Abstract launch stepgroup iterator. + */ +public abstract class AbstractPeerNodeStepGroupIterator extends AbstractPeerStepGroupIterator { + + /** + * Returns the active peer model context that is currently used. + * + * @param context The step context. Must not be <code>null</code>. + * @param data The data giving object. Must not be <code>null</code>. + * @param fullQualifiedId The full qualfied id for this step. Must not be <code>null</code>. + * @return The active peer model context. + */ + protected IPeerNode getActivePeerModelContext(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId) { + Object activeContext = getActiveContext(context, data, fullQualifiedId); + IPeerNode peerNode = null; + if (activeContext instanceof IPeerNode) + return (IPeerNode)activeContext; + if (activeContext instanceof IAdaptable) + peerNode = (IPeerNode)((IAdaptable)activeContext).getAdapter(IPeerNode.class); + if (peerNode == null) + peerNode = (IPeerNode)Platform.getAdapterManager().getAdapter(activeContext, IPeerNode.class); + + return peerNode; + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/StartDebuggerIterator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/StartDebuggerIterator.java index 2d789a7ce..0acc3cacc 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/StartDebuggerIterator.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/StartDebuggerIterator.java @@ -20,13 +20,13 @@ import org.eclipse.tcf.te.runtime.stepper.StepperAttributeUtil; import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; import org.eclipse.tcf.te.tcf.locator.interfaces.IStepAttributes; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; /** * Step group iterator for debugger attach. */ -public class StartDebuggerIterator extends AbstractPeerModelStepGroupIterator { +public class StartDebuggerIterator extends AbstractPeerNodeStepGroupIterator { /** * Constructor. @@ -44,11 +44,11 @@ public class StartDebuggerIterator extends AbstractPeerModelStepGroupIterator { final AtomicBoolean autoStartDbg = new AtomicBoolean(false); - final IPeerModel node = getActivePeerModelContext(context, data, fullQualifiedId); + final IPeerNode node = getActivePeerModelContext(context, data, fullQualifiedId); Runnable runnable = new Runnable() { @Override public void run() { - String value = node.getPeer().getAttributes().get(IPeerModelProperties.PROP_AUTO_START_DEBUGGER); + String value = node.getPeer().getAttributes().get(IPeerNodeProperties.PROP_AUTO_START_DEBUGGER); autoStartDbg.set(value != null ? Boolean.parseBoolean(value) : false); } }; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/StartSimulatorIterator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/StartSimulatorIterator.java index 19188f5bb..945c3de8d 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/StartSimulatorIterator.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/iterators/StartSimulatorIterator.java @@ -1,50 +1,50 @@ -/*******************************************************************************
- * Copyright (c) 2013 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.tcf.te.tcf.locator.iterators;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext;
-import org.eclipse.tcf.te.tcf.locator.utils.SimulatorUtils;
-
-/**
- * Step group iterator for simulator start.
- */
-public class StartSimulatorIterator extends AbstractPeerModelStepGroupIterator {
-
- /**
- * Constructor.
- */
- public StartSimulatorIterator() {
- super();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.stepper.iterators.AbstractStepGroupIterator#initialize(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor)
- */
- @Override
- public void initialize(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId, IProgressMonitor monitor) throws CoreException {
- super.initialize(context, data, fullQualifiedId, monitor);
-
- SimulatorUtils.Result result = SimulatorUtils.getSimulatorService(getActivePeerModelContext(context, data, fullQualifiedId));
-
- setIterations(result != null ? 1 : 0);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.stepper.iterators.AbstractStepGroupIterator#internalNext(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor)
- */
- @Override
- public void internalNext(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId, IProgressMonitor monitor) throws CoreException {
- }
-}
+/******************************************************************************* + * Copyright (c) 2013 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ + +package org.eclipse.tcf.te.tcf.locator.iterators; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; +import org.eclipse.tcf.te.tcf.locator.utils.SimulatorUtils; + +/** + * Step group iterator for simulator start. + */ +public class StartSimulatorIterator extends AbstractPeerNodeStepGroupIterator { + + /** + * Constructor. + */ + public StartSimulatorIterator() { + super(); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.stepper.iterators.AbstractStepGroupIterator#initialize(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor) + */ + @Override + public void initialize(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId, IProgressMonitor monitor) throws CoreException { + super.initialize(context, data, fullQualifiedId, monitor); + + SimulatorUtils.Result result = SimulatorUtils.getSimulatorService(getActivePeerModelContext(context, data, fullQualifiedId)); + + setIterations(result != null ? 1 : 0); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.stepper.iterators.AbstractStepGroupIterator#internalNext(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor) + */ + @Override + public void internalNext(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId, IProgressMonitor monitor) throws CoreException { + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ChannelStateChangeListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ChannelStateChangeListener.java index afc433394..6a06ca132 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ChannelStateChangeListener.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ChannelStateChangeListener.java @@ -16,10 +16,10 @@ import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.tcf.core.listeners.interfaces.IChannelStateChangeListener; import org.eclipse.tcf.te.tcf.locator.activator.CoreBundleActivator; import org.eclipse.tcf.te.tcf.locator.interfaces.ITracing; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; /** @@ -27,14 +27,14 @@ import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupSer */ public class ChannelStateChangeListener implements IChannelStateChangeListener { // Reference to the parent model - private final ILocatorModel model; + private final IPeerModel model; /** * Constructor. * * @param model The parent locator model. Must not be <code>null</code>. */ - public ChannelStateChangeListener(ILocatorModel model) { + public ChannelStateChangeListener(IPeerModel model) { Assert.isNotNull(model); this.model = model; } @@ -57,14 +57,14 @@ public class ChannelStateChangeListener implements IChannelStateChangeListener { IPeer peer = channel.getRemotePeer(); if (peer != null && peer.getID() != null) { // Find the corresponding model node - IPeerModel node = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(peer.getID()); + IPeerNode node = model.getService(IPeerModelLookupService.class).lkupPeerModelById(peer.getID()); if (node != null) { // Increase the channel reference counter by 1 - int counter = node.getIntProperty(IPeerModelProperties.PROP_CHANNEL_REF_COUNTER); + int counter = node.getIntProperty(IPeerNodeProperties.PROP_CHANNEL_REF_COUNTER); if (counter < 0) counter = 0; counter++; - node.setProperty(IPeerModelProperties.PROP_CHANNEL_REF_COUNTER, counter); - if (counter > 0) node.setProperty(IPeerModelProperties.PROP_STATE, IPeerModelProperties.STATE_CONNECTED); + node.setProperty(IPeerNodeProperties.PROP_CHANNEL_REF_COUNTER, counter); + if (counter > 0) node.setProperty(IPeerNodeProperties.PROP_STATE, IPeerNodeProperties.STATE_CONNECTED); } } break; @@ -72,15 +72,15 @@ public class ChannelStateChangeListener implements IChannelStateChangeListener { peer = channel.getRemotePeer(); if (peer != null && peer.getID() != null) { // Find the corresponding model node - IPeerModel node = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(peer.getID()); + IPeerNode node = model.getService(IPeerModelLookupService.class).lkupPeerModelById(peer.getID()); if (node != null) { // Decrease the channel reference counter by 1 - int counter = node.getIntProperty(IPeerModelProperties.PROP_CHANNEL_REF_COUNTER); + int counter = node.getIntProperty(IPeerNodeProperties.PROP_CHANNEL_REF_COUNTER); counter--; if (counter < 0) counter = 0; - node.setProperty(IPeerModelProperties.PROP_CHANNEL_REF_COUNTER, counter); - if (counter == 0 && node.isProperty(IPeerModelProperties.PROP_STATE, IPeerModelProperties.STATE_CONNECTED)) { - node.setProperty(IPeerModelProperties.PROP_STATE, IPeerModelProperties.STATE_REACHABLE); + node.setProperty(IPeerNodeProperties.PROP_CHANNEL_REF_COUNTER, counter); + if (counter == 0 && node.isProperty(IPeerNodeProperties.PROP_STATE, IPeerNodeProperties.STATE_CONNECTED)) { + node.setProperty(IPeerNodeProperties.PROP_STATE, IPeerNodeProperties.STATE_REACHABLE); } } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/LocatorListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/LocatorListener.java index 42476448b..27ba6659f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/LocatorListener.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/LocatorListener.java @@ -29,13 +29,13 @@ import org.eclipse.tcf.te.tcf.locator.ScannerRunnable; import org.eclipse.tcf.te.tcf.locator.activator.CoreBundleActivator; import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; import org.eclipse.tcf.te.tcf.locator.interfaces.ITracing; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService; -import org.eclipse.tcf.te.tcf.locator.nodes.PeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService; +import org.eclipse.tcf.te.tcf.locator.nodes.PeerNode; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; @@ -44,14 +44,14 @@ import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; */ public final class LocatorListener implements ILocator.LocatorListener { // Reference to the parent model - /* default */ final ILocatorModel model; + /* default */ final IPeerModel model; /** * Constructor. * * @param model The parent locator model. Must not be <code>null</code>. */ - public LocatorListener(ILocatorModel model) { + public LocatorListener(IPeerModel model) { super(); Assert.isNotNull(model); @@ -96,28 +96,26 @@ public final class LocatorListener implements ILocator.LocatorListener { if (model != null && peer != null) { // find the corresponding model node to remove (expected to be null) - IPeerModel peerNode = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(peer.getID()); + IPeerNode peerNode = model.getService(IPeerModelLookupService.class).lkupPeerModelById(peer.getID()); if (peerNode == null) { // Double check with "ClientID" if set String clientID = peer.getAttributes().get("ClientID"); //$NON-NLS-1$ if (clientID != null) { - peerNode = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(clientID); + peerNode = model.getService(IPeerModelLookupService.class).lkupPeerModelById(clientID); } } // If not found, create a new peer node instance if (peerNode == null) { - peerNode = new PeerModel(model, peer); + peerNode = new PeerNode(model, peer); // Validate the peer node before adding peerNode = model.validatePeerNodeForAdd(peerNode); // Add the peer node to the model if (peerNode != null) { // If there are reachable static peers without an agent ID associated or // static peers with unknown link state, refresh the agent ID's first. - List<IPeerModel> nodes = new ArrayList<IPeerModel>(); + List<IPeerNode> nodes = new ArrayList<IPeerNode>(); - for (IPeerModel node : model.getPeers()) { - // Skip static nodes - if (!node.isStatic()) continue; + for (IPeerNode node : model.getPeers()) { // We expect the agent ID to be set if (node.getPeer().getAgentID() == null || "".equals(node.getPeer().getAgentID())) { //$NON-NLS-1$ nodes.add(node); @@ -125,31 +123,31 @@ public final class LocatorListener implements ILocator.LocatorListener { } // Create the runnable to execute after the agent ID refresh (if needed) - final IPeerModel finPeerNode = peerNode; + final IPeerNode finPeerNode = peerNode; final IPeer finPeer = peer; final Runnable runnable = new Runnable() { @Override public void run() { - IPeerModel[] matches = model.getService(ILocatorModelLookupService.class).lkupMatchingStaticPeerModels(finPeerNode); + IPeerNode[] matches = model.getService(IPeerModelLookupService.class).lkupMatchingStaticPeerModels(finPeerNode); if (matches.length == 0) { // If the peer node is still in the model, schedule for immediate status update - if (model.getService(ILocatorModelLookupService.class).lkupPeerModelById(finPeerNode.getPeerId()) != null) { + if (model.getService(IPeerModelLookupService.class).lkupPeerModelById(finPeerNode.getPeerId()) != null) { Runnable runnable2 = new ScannerRunnable(model.getScanner(), finPeerNode); Protocol.invokeLater(runnable2); } } else { // Remove the preliminary added node from the model again - model.getService(ILocatorModelUpdateService.class).remove(finPeerNode); + model.getService(IPeerModelUpdateService.class).remove(finPeerNode); - for (IPeerModel match : matches) { + for (IPeerNode match : matches) { IPeer myPeer = model.validatePeer(finPeer); if (myPeer != null) { // Update the matching static node boolean changed = match.setChangeEventsEnabled(false); // Merge user configured properties between the peers - model.getService(ILocatorModelUpdateService.class).mergeUserDefinedAttributes(match, myPeer, true); + model.getService(IPeerModelUpdateService.class).mergeUserDefinedAttributes(match, myPeer, true); if (changed) match.setChangeEventsEnabled(true); - match.fireChangeEvent(IPeerModelProperties.PROP_INSTANCE, myPeer, match.getPeer()); + match.fireChangeEvent(IPeerNodeProperties.PROP_INSTANCE, myPeer, match.getPeer()); // And schedule for immediate status update Runnable runnable2 = new ScannerRunnable(model.getScanner(), match); Protocol.invokeLater(runnable2); @@ -161,11 +159,11 @@ public final class LocatorListener implements ILocator.LocatorListener { // Preliminary add the node to the model now. If we have to refresh the agent ID, // this is an asynchronous operation and other peerAdded events might be processed before. - model.getService(ILocatorModelUpdateService.class).add(peerNode); + model.getService(IPeerModelUpdateService.class).add(peerNode); if (nodes.size() > 0) { // Refresh the agent ID's first - model.getService(ILocatorModelRefreshService.class).refreshAgentIDs(nodes.toArray(new IPeerModel[nodes.size()]), new Callback() { + model.getService(IPeerModelRefreshService.class).refreshAgentIDs(nodes.toArray(new IPeerNode[nodes.size()]), new Callback() { @Override protected void internalDone(Object caller, IStatus status) { // Ignore errors @@ -179,26 +177,18 @@ public final class LocatorListener implements ILocator.LocatorListener { } } else { // Peer node found, update the peer instance - boolean isStatic = peerNode.isStatic(); - if (isStatic) { // Validate the peer node before updating IPeer myPeer = model.validatePeer(peer); if (myPeer != null) { boolean changed = peerNode.setChangeEventsEnabled(false); // Merge user configured properties between the peers - model.getService(ILocatorModelUpdateService.class).mergeUserDefinedAttributes(peerNode, myPeer, true); + model.getService(IPeerModelUpdateService.class).mergeUserDefinedAttributes(peerNode, myPeer, true); if (changed) peerNode.setChangeEventsEnabled(true); - peerNode.fireChangeEvent(IPeerModelProperties.PROP_INSTANCE, myPeer, peerNode.getPeer()); + peerNode.fireChangeEvent(IPeerNodeProperties.PROP_INSTANCE, myPeer, peerNode.getPeer()); // And schedule for immediate status update Runnable runnable = new ScannerRunnable(model.getScanner(), peerNode); Protocol.invokeLater(runnable); } - } else { - peerNode.setProperty(IPeerModelProperties.PROP_INSTANCE, peer); - // And schedule for immediate status update - Runnable runnable = new ScannerRunnable(model.getScanner(), peerNode); - Protocol.invokeLater(runnable); - } } } } @@ -229,12 +219,12 @@ public final class LocatorListener implements ILocator.LocatorListener { if (model != null && peer != null) { // find the corresponding model node to remove - IPeerModel peerNode = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(peer.getID()); + IPeerNode peerNode = model.getService(IPeerModelLookupService.class).lkupPeerModelById(peer.getID()); if (peerNode == null) { // Double check with "ClientID" if set String clientID = peer.getAttributes().get("ClientID"); //$NON-NLS-1$ if (clientID != null) { - peerNode = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(clientID); + peerNode = model.getService(IPeerModelLookupService.class).lkupPeerModelById(clientID); } } // Update the peer instance @@ -245,7 +235,7 @@ public final class LocatorListener implements ILocator.LocatorListener { if (oldPeer != peer) { // Peers visible to the locator are replaced with the new instance if (oldPeer instanceof AbstractPeer) { - peerNode.setProperty(IPeerModelProperties.PROP_INSTANCE, peer); + peerNode.setProperty(IPeerNodeProperties.PROP_INSTANCE, peer); } // Non-visible peers are updated else { @@ -254,15 +244,15 @@ public final class LocatorListener implements ILocator.LocatorListener { if (myPeer != null) { boolean changed = peerNode.setChangeEventsEnabled(false); // Merge user configured properties between the peers - model.getService(ILocatorModelUpdateService.class).mergeUserDefinedAttributes(peerNode, myPeer, true); + model.getService(IPeerModelUpdateService.class).mergeUserDefinedAttributes(peerNode, myPeer, true); if (changed) peerNode.setChangeEventsEnabled(true); - peerNode.fireChangeEvent(IPeerModelProperties.PROP_INSTANCE, myPeer, peerNode.getPeer()); + peerNode.fireChangeEvent(IPeerNodeProperties.PROP_INSTANCE, myPeer, peerNode.getPeer()); } } } } // Refresh static peers and merge attributes if required - model.getService(ILocatorModelRefreshService.class).refreshStaticPeers(); + model.getService(IPeerModelRefreshService.class).refreshStaticPeers(); } // Clean up the guardians @@ -282,7 +272,7 @@ public final class LocatorListener implements ILocator.LocatorListener { if (model != null && id != null) { // find the corresponding model node to remove - IPeerModel peerNode = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(id); + IPeerNode peerNode = model.getService(IPeerModelLookupService.class).lkupPeerModelById(id); // If we cannot find a model node, it is probably because the remove is sent for the // non-loopback addresses of the localhost. We have to double check this. @@ -309,12 +299,11 @@ public final class LocatorListener implements ILocator.LocatorListener { newId.append(id.substring(endIndex + 1)); // Try the lookup again - peerNode = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(newId.toString()); + peerNode = model.getService(IPeerModelLookupService.class).lkupPeerModelById(newId.toString()); } // If the model node is found in the model, process the removal. if (peerNode != null) { - if (peerNode.isStatic()) { boolean changed = peerNode.setChangeEventsEnabled(false); IPeer peer = peerNode.getPeer(); @@ -349,8 +338,8 @@ public final class LocatorListener implements ILocator.LocatorListener { } // Remove the attributes stored at peer node level - peerNode.setProperty(IPeerModelProperties.PROP_LOCAL_SERVICES, null); - peerNode.setProperty(IPeerModelProperties.PROP_REMOTE_SERVICES, null); + peerNode.setProperty(IPeerNodeProperties.PROP_LOCAL_SERVICES, null); + peerNode.setProperty(IPeerNodeProperties.PROP_REMOTE_SERVICES, null); // Check if we have to remote the peer in the underlying locator service too if (remotePeerID != null) { @@ -363,11 +352,11 @@ public final class LocatorListener implements ILocator.LocatorListener { peerNode.getModel().setChildren(peerNode.getPeerId(), null); if (changed) peerNode.setChangeEventsEnabled(true); - peerNode.fireChangeEvent(IPeerModelProperties.PROP_INSTANCE, peer, peerNode.getPeer()); + peerNode.fireChangeEvent(IPeerNodeProperties.PROP_INSTANCE, peer, peerNode.getPeer()); final IModelListener[] listeners = model.getListener(); if (listeners.length > 0) { - final IPeerModel finPeerNode = peerNode; + final IPeerNode finPeerNode = peerNode; Protocol.invokeLater(new Runnable() { @Override public void run() { @@ -377,10 +366,6 @@ public final class LocatorListener implements ILocator.LocatorListener { } }); } - } else { - // Dynamic peer -> Remove peer model node from the model - model.getService(ILocatorModelUpdateService.class).remove(peerNode); - } } } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ModelAdapter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ModelAdapter.java index 2da4ca45c..ecadefe17 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ModelAdapter.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ModelAdapter.java @@ -10,8 +10,8 @@ package org.eclipse.tcf.te.tcf.locator.listener; import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Default model listener implementation. @@ -19,17 +19,17 @@ import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; public class ModelAdapter implements IModelListener { /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener#locatorModelChanged(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel, org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel, boolean) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener#locatorModelChanged(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel, org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode, boolean) */ @Override - public void locatorModelChanged(ILocatorModel model, IPeerModel peerModel, boolean added) { + public void locatorModelChanged(IPeerModel model, IPeerNode peerNode, boolean added) { } /* (non-Javadoc) * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.IModelListener#locatorModelDisposed(org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel) */ @Override - public void locatorModelDisposed(ILocatorModel model) { + public void locatorModelDisposed(IPeerModel model) { } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/model/Model.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/model/Model.java index cab63d2f2..2af3c5844 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/model/Model.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/model/Model.java @@ -11,9 +11,9 @@ package org.eclipse.tcf.te.tcf.locator.model; import org.eclipse.core.runtime.Assert; import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.nodes.LocatorModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.nodes.PeerModel; /** @@ -21,7 +21,7 @@ import org.eclipse.tcf.te.tcf.locator.nodes.LocatorModel; */ public final class Model { // Reference to the locator model - /* default */ static volatile ILocatorModel locatorModel; + /* default */ static volatile IPeerModel peerModel; /** * Returns the shared locator model instance. @@ -31,7 +31,7 @@ public final class Model { * * @return The shared locator model. */ - public static ILocatorModel getModel() { + public static IPeerModel getModel() { return getModel(false); } @@ -48,9 +48,9 @@ public final class Model { * * @return The shared locator model. */ - public static ILocatorModel getModel(boolean shutdown) { + public static IPeerModel getModel(boolean shutdown) { // Access to the locator model must happen in the TCF dispatch thread - if (locatorModel == null && !shutdown) { + if (peerModel == null && !shutdown) { if (Protocol.isDispatchThread()) { initialize(); } else { @@ -62,7 +62,7 @@ public final class Model { }); } } - return locatorModel; + return peerModel; } /** @@ -73,35 +73,35 @@ public final class Model { // If locator model is set in the mean while, initialize got // called twice. Return immediately in this case. - if (locatorModel != null) return; + if (peerModel != null) return; // Create the model instance - locatorModel = new LocatorModel(); + peerModel = new PeerModel(); // Refresh the model right away - locatorModel.getService(ILocatorModelRefreshService.class).refresh(null); + peerModel.getService(IPeerModelRefreshService.class).refresh(null); // Start the scanner - locatorModel.startScanner(5000, 120000); + peerModel.startScanner(5000, 120000); } /** * Dispose the root node. */ public static void dispose() { - if (locatorModel == null) return; + if (peerModel == null) return; // Access to the locator model must happen in the TCF dispatch thread if (Protocol.isDispatchThread()) { - locatorModel.dispose(); + peerModel.dispose(); } else { Protocol.invokeAndWait(new Runnable() { @Override public void run() { - locatorModel.dispose(); + peerModel.dispose(); } }); } - locatorModel = null; + peerModel = null; } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/ConnectablePeerModel.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/ConnectablePeerModel.java deleted file mode 100644 index 95b1e989d..000000000 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/ConnectablePeerModel.java +++ /dev/null @@ -1,179 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Wind River Systems, Inc. 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 - * - * Contributors: - * Wind River Systems - initial API and implementation - *******************************************************************************/ - -package org.eclipse.tcf.te.tcf.locator.nodes; - -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.tcf.protocol.IPeer; -import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.core.interfaces.IConnectable; -import org.eclipse.tcf.te.core.utils.ConnectStateHelper; -import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback; -import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepperOperationService; -import org.eclipse.tcf.te.runtime.stepper.utils.StepperHelper; -import org.eclipse.tcf.te.runtime.utils.StatusHelper; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.IStepperServiceOperations; - -/** - * ConnectablePeerModel - */ -public class ConnectablePeerModel extends PeerModel implements IConnectable { - - public static final String PROPERTY_CONNECT_STATE = "connectState"; //$NON-NLS-1$ - - /** - * Constructor. - * @param model - * @param peer - */ - public ConnectablePeerModel(ILocatorModel model, IPeer peer) { - super(model, peer); - setConnectState(STATE_DISCONNECTED); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.core.interfaces.IConnectable#getConnectState() - */ - @Override - public int getConnectState() { - final AtomicInteger state = new AtomicInteger(STATE_UNKNOWN); - Protocol.invokeAndWait(new Runnable() { - @Override - public void run() { - if (getProperty(PROPERTY_CONNECT_STATE) != null) { - state.set(getIntProperty(PROPERTY_CONNECT_STATE)); - } - } - }); - return state.get(); - } - - @Override - public boolean setConnectState(final int newState) { - final AtomicBoolean result = new AtomicBoolean(false); - if (isConnectStateChangeAllowed(newState)) { - Protocol.invokeAndWait(new Runnable() { - @Override - public void run() { - result.set(setProperty(PROPERTY_CONNECT_STATE, newState)); - } - }); - } - return result.get(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.nodes.PeerModel#postSetProperty(java.lang.String, java.lang.Object, java.lang.Object) - */ - @Override - public void postSetProperty(String key, Object value, Object oldValue) { - if (getConnectState() == STATE_CONNECTED && IPeerModelProperties.PROP_STATE.equals(key)) { - int state = value instanceof Integer ? ((Integer)value).intValue() : IPeerModelProperties.STATE_UNKNOWN; - if (state != IPeerModelProperties.STATE_CONNECTED && state != IPeerModelProperties.STATE_REACHABLE) { - changeConnectState(STATE_DISCONNECTED, null, null); - } - } - - super.postSetProperty(key, value, oldValue); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.core.interfaces.IConnectable#changeConnectState(int, org.eclipse.tcf.te.runtime.interfaces.callback.ICallback) - */ - @Override - public void changeConnectState(final int action, ICallback callback, IProgressMonitor monitor) throws IllegalArgumentException { - final int oldState = getConnectState(); - if (!isConnectStateChangeActionAllowed(action)) { - IllegalArgumentException e = new IllegalArgumentException("Cannot change state from '" + ConnectStateHelper.getConnectState(oldState) + "' using action '" + ConnectStateHelper.getConnectState(action) + "'."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - if (callback != null) { - callback.done(this, StatusHelper.getStatus(e)); - } - else { - throw e; - } - } - - String operation = null; - int intermediateState = 0; - - switch (action) { - case ACTION_CONNECT: - operation = IStepperServiceOperations.CONNECT; - intermediateState = STATE_CONNECT_SCHEDULED; - break; - case ACTION_DISCONNECT: - operation = IStepperServiceOperations.DISCONNECT; - intermediateState = STATE_DISCONNECT_SCHEDULED; - break; - } - - IStepperOperationService service = StepperHelper.getService(this, operation); - if (service != null) { - setConnectState(intermediateState); - StepperHelper.scheduleStepperJob(this, operation, service, callback, monitor); - } - else if (callback != null) { - callback.done(this, StatusHelper.getStatus(new NullPointerException("Missing stepper operation service for " + getName() + "."))); //$NON-NLS-1$ //$NON-NLS-2$ - } - } - - @Override - public boolean isConnectStateChangeActionAllowed(int action) { - int state = getConnectState(); - switch (state) { - case STATE_CONNECTED: - case STATE_CONNECT_SCHEDULED: - case STATE_CONNECTING: - return isAllowedState(action, ACTION_DISCONNECT); - case STATE_DISCONNECTED: - return isAllowedState(action, ACTION_CONNECT); - } - return false; - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.core.interfaces.IConnectable#isConnectStateChangeAllowed(int) - */ - @Override - public boolean isConnectStateChangeAllowed(int newState) { - int state = getConnectState(); - switch (state) { - case STATE_CONNECTED: - return isAllowedState(newState, STATE_DISCONNECTED, STATE_DISCONNECT_SCHEDULED, STATE_DISCONNECTING); - case STATE_CONNECT_SCHEDULED: - return isAllowedState(newState, STATE_CONNECTING, STATE_CONNECTED, STATE_DISCONNECTED, STATE_DISCONNECT_SCHEDULED, STATE_DISCONNECTING); - case STATE_CONNECTING: - return isAllowedState(newState, STATE_CONNECTED, STATE_DISCONNECT_SCHEDULED, STATE_DISCONNECTING, STATE_DISCONNECTED); - case STATE_DISCONNECTED: - return isAllowedState(newState, STATE_CONNECTED, STATE_CONNECT_SCHEDULED, STATE_CONNECTING); - case STATE_DISCONNECT_SCHEDULED: - return isAllowedState(newState, STATE_DISCONNECTING, STATE_DISCONNECTED); - case STATE_DISCONNECTING: - return isAllowedState(newState, STATE_DISCONNECTED); - case STATE_UNKNOWN: - return isAllowedState(newState, STATE_DISCONNECTED); - } - return false; - } - - private boolean isAllowedState(int state, int... allowedStates) { - for (int allowedState : allowedStates) { - if (state == allowedState) { - return true; - } - } - return false; - } -} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/LocatorModel.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/LocatorModel.java deleted file mode 100644 index 45a47c802..000000000 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/LocatorModel.java +++ /dev/null @@ -1,785 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011, 2013 Wind River Systems, Inc. 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 - * - * Contributors: - * Wind River Systems - initial API and implementation - *******************************************************************************/ -package org.eclipse.tcf.te.tcf.locator.nodes; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.atomic.AtomicReference; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.core.runtime.PlatformObject; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.tcf.protocol.IPeer; -import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.services.ILocator; -import org.eclipse.tcf.te.runtime.utils.net.IPAddressUtil; -import org.eclipse.tcf.te.tcf.core.Tcf; -import org.eclipse.tcf.te.tcf.core.listeners.interfaces.IChannelStateChangeListener; -import org.eclipse.tcf.te.tcf.locator.Scanner; -import org.eclipse.tcf.te.tcf.locator.activator.CoreBundleActivator; -import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; -import org.eclipse.tcf.te.tcf.locator.interfaces.IScanner; -import org.eclipse.tcf.te.tcf.locator.interfaces.ITracing; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService; -import org.eclipse.tcf.te.tcf.locator.listener.ChannelStateChangeListener; -import org.eclipse.tcf.te.tcf.locator.listener.LocatorListener; -import org.eclipse.tcf.te.tcf.locator.services.LocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.services.LocatorModelPeerNodeQueryService; -import org.eclipse.tcf.te.tcf.locator.services.LocatorModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.services.LocatorModelUpdateService; - - -/** - * Default locator model implementation. - */ -public class LocatorModel extends PlatformObject implements ILocatorModel { - // The unique model id - private final UUID uniqueId = UUID.randomUUID(); - // Flag to mark the model disposed - private boolean disposed; - - // The list of known peers - /* default */ final Map<String, IPeerModel> peers = new HashMap<String, IPeerModel>(); - // The list of "proxied" peers per proxy peer id - /* default */ final Map<String, List<IPeerModel>> peerChildren = new HashMap<String, List<IPeerModel>>(); - - // Reference to the scanner - private IScanner scanner = null; - - // Reference to the model locator listener - private ILocator.LocatorListener locatorListener = null; - // Reference to the model channel state change listener - private IChannelStateChangeListener channelStateChangeListener = null; - - // The list of registered model listeners - private final List<IModelListener> modelListener = new ArrayList<IModelListener>(); - - // Reference to the refresh service - private final ILocatorModelRefreshService refreshService = new LocatorModelRefreshService(this); - // Reference to the lookup service - private final ILocatorModelLookupService lookupService = new LocatorModelLookupService(this); - // Reference to the update service - private final ILocatorModelUpdateService updateService = new LocatorModelUpdateService(this); - // Reference to the query service - private final ILocatorModelPeerNodeQueryService queryService = new LocatorModelPeerNodeQueryService(this); - - /** - * Constructor. - */ - public LocatorModel() { - super(); - disposed = false; - - channelStateChangeListener = new ChannelStateChangeListener(this); - Tcf.addChannelStateChangeListener(channelStateChangeListener); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#addListener(org.eclipse.tcf.te.tcf.locator.core.interfaces.IModelListener) - */ - @Override - public void addListener(IModelListener listener) { - Assert.isNotNull(listener); - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.addListener( " + listener + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ - } - - if (!modelListener.contains(listener)) modelListener.add(listener); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#removeListener(org.eclipse.tcf.te.tcf.locator.core.interfaces.IModelListener) - */ - @Override - public void removeListener(IModelListener listener) { - Assert.isNotNull(listener); - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.removeListener( " + listener + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ - } - - modelListener.remove(listener); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel#getListener() - */ - @Override - public IModelListener[] getListener() { - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - return modelListener.toArray(new IModelListener[modelListener.size()]); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#dispose() - */ - @Override - public void dispose() { - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.dispose()", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ - } - - // If already disposed, we are done immediately - if (disposed) return; - - disposed = true; - - final IModelListener[] listeners = getListener(); - if (listeners.length > 0) { - Protocol.invokeLater(new Runnable() { - @Override - public void run() { - for (IModelListener listener : listeners) { - listener.locatorModelDisposed(LocatorModel.this); - } - } - }); - } - modelListener.clear(); - - if (locatorListener != null) { - Protocol.getLocator().removeListener(locatorListener); - locatorListener = null; - } - - if (channelStateChangeListener != null) { - Tcf.removeChannelStateChangeListener(channelStateChangeListener); - channelStateChangeListener = null; - } - - if (scanner != null) { - stopScanner(); - scanner = null; - } - - peers.clear(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#isDisposed() - */ - @Override - public boolean isDisposed() { - return disposed; - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#getPeers() - */ - @Override - public IPeerModel[] getPeers() { - final AtomicReference<IPeerModel[]> result = new AtomicReference<IPeerModel[]>(); - - Runnable runnable = new Runnable() { - @Override - public void run() { - result.set(peers.values().toArray(new IPeerModel[peers.values().size()])); - } - }; - - if (Protocol.isDispatchThread()) runnable.run(); - else Protocol.invokeAndWait(runnable); - - return result.get(); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel#getChildren(java.lang.String) - */ - @Override - public List<IPeerModel> getChildren(final String parentPeerID) { - Assert.isNotNull(parentPeerID); - - final AtomicReference<List<IPeerModel>> result = new AtomicReference<List<IPeerModel>>(); - - Runnable runnable = new Runnable() { - @Override - public void run() { - List<IPeerModel> children = peerChildren.get(parentPeerID); - if (children == null) children = Collections.emptyList(); - result.set(children); - } - }; - - if (Protocol.isDispatchThread()) runnable.run(); - else Protocol.invokeAndWait(runnable); - - return Collections.unmodifiableList(result.get()); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel#setChildren(java.lang.String, java.util.List) - */ - @Override - public void setChildren(String parentPeerID, List<IPeerModel> children) { - Assert.isNotNull(parentPeerID); - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - - if (children == null || children.size() == 0) { - peerChildren.remove(parentPeerID); - } else { - peerChildren.put(parentPeerID, new ArrayList<IPeerModel>(children)); - } - } - - /* (non-Javadoc) - * @see org.eclipse.core.runtime.PlatformObject#getAdapter(java.lang.Class) - */ - @Override - public Object getAdapter(Class adapter) { - if (adapter.isAssignableFrom(ILocator.LocatorListener.class)) { - return locatorListener; - } - if (adapter.isAssignableFrom(IScanner.class)) { - return scanner; - } - if (adapter.isAssignableFrom(ILocatorModelRefreshService.class)) { - return refreshService; - } - if (adapter.isAssignableFrom(ILocatorModelLookupService.class)) { - return lookupService; - } - if (adapter.isAssignableFrom(ILocatorModelUpdateService.class)) { - return updateService; - } - if (adapter.isAssignableFrom(ILocatorModelPeerNodeQueryService.class)) { - return queryService; - } - if (adapter.isAssignableFrom(Map.class)) { - return peers; - } - - return super.getAdapter(adapter); - } - - /* (non-Javadoc) - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - return uniqueId.hashCode(); - } - - /* (non-Javadoc) - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public final boolean equals(Object obj) { - if (obj instanceof LocatorModel) { - return uniqueId.equals(((LocatorModel)obj).uniqueId); - } - return super.equals(obj); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#getService(java.lang.Class) - */ - @Override - @SuppressWarnings("unchecked") - public <V extends ILocatorModelService> V getService(Class<V> serviceInterface) { - Assert.isNotNull(serviceInterface); - return (V)getAdapter(serviceInterface); - } - - /** - * Check if the locator listener has been created and registered - * to the global locator service. - * <p> - * <b>Note:</b> This method is not intended to be call from clients. - */ - public void checkLocatorListener() { - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - Assert.isNotNull(Protocol.getLocator()); - - if (locatorListener == null) { - locatorListener = doCreateLocatorListener(this); - Protocol.getLocator().addListener(locatorListener); - } - } - - /** - * Creates the locator listener instance. - * - * @param model The parent model. Must not be <code>null</code>. - * @return The locator listener instance. - */ - protected ILocator.LocatorListener doCreateLocatorListener(ILocatorModel model) { - Assert.isNotNull(model); - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - - return new LocatorListener(model); - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#getScanner() - */ - @Override - public IScanner getScanner() { - if (scanner == null) scanner = new Scanner(this); - return scanner; - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#startScanner(long, long) - */ - @Override - public void startScanner(long delay, long schedule) { - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.startScanner( " + delay + ", " + schedule + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - - IScanner scanner = getScanner(); - Assert.isNotNull(scanner); - - // Pass on the schedule parameter - Map<String, Object> config = new HashMap<String, Object>(scanner.getConfiguration()); - config.put(IScanner.PROP_SCHEDULE, Long.valueOf(schedule)); - scanner.setConfiguration(config); - - // The default scanner implementation is a job. - // -> schedule here if it is a job - if (scanner instanceof Job) { - Job job = (Job)scanner; - job.setSystem(true); - job.setPriority(Job.DECORATE); - job.schedule(delay); - } - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#stopScanner() - */ - @Override - public void stopScanner() { - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.stopScanner()", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ - } - - if (scanner != null) { - // Terminate the scanner - scanner.terminate(); - // Reset the scanner reference - scanner = null; - } - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel#validatePeer(org.eclipse.tcf.protocol.IPeer) - */ - @Override - public IPeer validatePeer(IPeer peer) { - Assert.isNotNull(peer); - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.validatePeer( " + peer.getID() + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ - } - - IPeer result = peer; - - // Get the loopback address - String loopback = IPAddressUtil.getInstance().getIPv4LoopbackAddress(); - // Get the peer IP - String peerIP = peer.getAttributes().get(IPeer.ATTR_IP_HOST); - - // If the peer node is for local host, we ignore all peers not being - // associated with the loopback address. - if (IPAddressUtil.getInstance().isLocalHost(peerIP) && !loopback.equals(peerIP)) { - // Not loopback address -> drop the peer - result = null; - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.validatePeer: local host peer but not loopback address -> peer node dropped" //$NON-NLS-1$ - , ITracing.ID_TRACE_LOCATOR_MODEL, this); - } - } - - return result; - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#validatePeerNodeForAdd(org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.IPeerModel) - */ - @Override - public IPeerModel validatePeerNodeForAdd(IPeerModel node) { - Assert.isNotNull(node); - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - - // Get the peer from the peer node - IPeer peer = node.getPeer(); - if (peer == null) return node; - - // Skip static peer IP address validation - boolean isStatic = node.isStatic(); - if (isStatic) return node; - - // Skip validation if the transport type is not TCP or SSL - String transport = peer.getTransportName(); - if (transport == null || !"TCP".equals(transport) && !"SSL".equals(transport)){ //$NON-NLS-1$ //$NON-NLS-2$ - return node; - } - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.validatePeerNodeForAdd( " + peer.getID() + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ - } - - IPeerModel result = node; - - // Get the loopback address - String loopback = IPAddressUtil.getInstance().getIPv4LoopbackAddress(); - // Get the peer IP - String peerIP = peer.getAttributes().get(IPeer.ATTR_IP_HOST); - - // If the peer node is for local host, we ignore all peers not being - // associated with the loopback address. - if (IPAddressUtil.getInstance().isLocalHost(peerIP) && !loopback.equals(peerIP)) { - boolean drop = true; - - // Simulator nodes appears on local host IP addresses too, but does not have - // a loopback peer available. We have to check the agent ID to determine if - // a specific node can be dropped - String agentID = peer.getAgentID(); - if (agentID != null) { - // Get all discovered peers - Map<String, IPeer> peers = Protocol.getLocator().getPeers(); - // Sort them by agent id - Map<String, List<IPeer>> byAgentID = new HashMap<String, List<IPeer>>(); - - for (IPeer candidate : peers.values()) { - if (candidate.getAgentID() == null) continue; - - List<IPeer> l = byAgentID.get(candidate.getAgentID()); - if (l == null) { - l = new ArrayList<IPeer>(); - byAgentID.put(candidate.getAgentID(), l); - } - Assert.isNotNull(l); - if (!l.contains(candidate)) l.add(candidate); - } - - // Check all peers found for the same agent ID as the current peer to validate - List<IPeer> candidates = byAgentID.get(agentID); - if (candidates != null && candidates.size() > 1) { - // Check if the found peers contains one with the loopback address - drop = false; - for (IPeer candidate : candidates) { - String ip = candidate.getAttributes().get(IPeer.ATTR_IP_HOST); - if (IPAddressUtil.getInstance().isLocalHost(ip) && loopback.equals(ip)) { - drop = true; - break; - } - } - } else { - // No other node for this agent ID -> do not drop the peer - drop = false; - } - } - - - if (drop) { - // Not loopback address -> drop the peer - result = null; - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.validatePeerNodeForAdd: local host peer but not loopback address -> peer node dropped", //$NON-NLS-1$ - ITracing.ID_TRACE_LOCATOR_MODEL, this); - } - } - } - - // Continue filtering if the node is not yet dropped - if (result != null) { - List<IPeerModel> previousNodes = new ArrayList<IPeerModel>(); - - // Peers are filtered by agent id. Don't add the peer node if we have another peer - // node already having the same agent id - String agentId = peer.getAgentID(); - if (agentId != null) { - previousNodes.addAll(Arrays.asList(getService(ILocatorModelLookupService.class).lkupPeerModelByAgentId(agentId))); - } - - // Lookup for matching static peer nodes not found by the agent id lookup - IPeerModel[] candidates = getService(ILocatorModelLookupService.class).lkupMatchingStaticPeerModels(peer); - for (IPeerModel candidate : candidates) { - if (!previousNodes.contains(candidate)) previousNodes.add(candidate); - } - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.validatePeerNodeForAdd: agentId=" + agentId + ", Matching peer nodes " //$NON-NLS-1$ //$NON-NLS-2$ - + (previousNodes.size() > 0 ? "found (" + previousNodes.size() +")" : "not found --> DONE") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - , ITracing.ID_TRACE_LOCATOR_MODEL, this); - } - - for (IPeerModel previousNode : previousNodes) { - // Get the peer for the previous node - IPeer previousPeer = previousNode.getPeer(); - if (previousPeer != null) { - // Get the IP address of the previous node - String previousPeerIP = previousPeer.getAttributes().get(IPeer.ATTR_IP_HOST); - if (IPAddressUtil.getInstance().isLocalHost(previousPeerIP) && !loopback.equals(previousPeerIP) && loopback.equals(peerIP)) { - // Remove the previous node from the model - getService(ILocatorModelUpdateService.class).remove(previousNode); - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.validatePeerNodeForAdd: Previous peer removed and replaced by new peer representing the loopback address" //$NON-NLS-1$ - , ITracing.ID_TRACE_LOCATOR_MODEL, this); - } - - continue; - } - - // Get the ports - String peerPort = peer.getAttributes().get(IPeer.ATTR_IP_PORT); - String previousPeerPort = previousPeer.getAttributes().get(IPeer.ATTR_IP_PORT); - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.validatePeerNodeForAdd: peerIP=" + peerIP //$NON-NLS-1$ - + ", peerPort=" + peerPort + ", previousPeerPort=" + previousPeerPort //$NON-NLS-1$ //$NON-NLS-2$ - , ITracing.ID_TRACE_LOCATOR_MODEL, this); - } - - // If the ports of the agent instances are identical, - // than try to find the best representation of the agent instance - if (peerPort != null && peerPort.equals(previousPeerPort)) { - // Drop the current node - result = null; - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.validatePeerNodeForAdd: Previous peer node kept, new peer node dropped" //$NON-NLS-1$ - , ITracing.ID_TRACE_LOCATOR_MODEL, this); - } - - - // Break the loop if the ports matched - break; - } - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.validatePeerNodeForAdd: Previous peer node kept, new peer node added (Port mismatch)" //$NON-NLS-1$ - , ITracing.ID_TRACE_LOCATOR_MODEL, this); - } - } - } - } - - return result; - } - - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel#validateChildPeerNodeForAdd(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel) - */ - @Override - public IPeerModel validateChildPeerNodeForAdd(final IPeerModel node) { - Assert.isNotNull(node); - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.validateChildPeerNodeForAdd( " + node.getPeerId() + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ - } - - // Determine the parent node. If null, the child node is invalid - // and cannot be added - final IPeerModel parent = node.getParent(IPeerModel.class); - if (parent == null) return null; - - return validateChildPeerNodeForAdd(parent, node); - } - - /** - * Validates the given child peer model node in relation to the given parent peer model node - * hierarchy. - * <p> - * The method is recursive. - * - * @param parent The parent model node. Must not be <code>null</code>. - * @param node The child model node. Must not be <code>null</code>. - * - * @return The validated child peer model node, or <code>null</code>. - */ - protected IPeerModel validateChildPeerNodeForAdd(IPeerModel parent, IPeerModel node) { - Assert.isNotNull(parent); - Assert.isNotNull(node); - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.validateChildPeerNodeForAdd( " + parent.getPeerId() + ", " + node.getPeerId() + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - - // Validate against the given parent - if (doValidateChildPeerNodeForAdd(parent, node) == null) { - return null; - } - - // If the parent node is child node by itself, validate the - // child node against the parent parent node. - if (parent.getParent(IPeerModel.class) != null) { - IPeerModel parentParentNode = parent.getParent(IPeerModel.class); - if (doValidateChildPeerNodeForAdd(parentParentNode, node) == null) { - return null; - } - - // And validate the child node against all child nodes of the parent parent. - List<IPeerModel> childrenList = getChildren(parentParentNode.getPeerId()); - IPeerModel[] children = childrenList.toArray(new IPeerModel[childrenList.size()]); - for (IPeerModel parentParentChild : children) { - if (node.equals(parentParentChild) || parent.equals(parentParentChild)) { - return null; - } - if (doValidateChildPeerNodeForAdd(parentParentChild, node) == null) { - return null; - } - } - } - - return node; - } - - /** - * Validates the given child peer model node in relation to the given parent peer model node. - * <p> - * The method is non-recursive. - * - * @param parent The parent model node. Must not be <code>null</code>. - * @param node The child model node. Must not be <code>null</code>. - * - * @return The validated child peer model node, or <code>null</code>. - */ - protected IPeerModel doValidateChildPeerNodeForAdd(IPeerModel parent, IPeerModel node) { - Assert.isNotNull(parent); - Assert.isNotNull(node); - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - - if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { - CoreBundleActivator.getTraceHandler().trace("LocatorModel.doValidateChildPeerNodeForAdd( " + parent.getPeerId() + ", " + node.getPeerId() + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - - // If the child node is already visible as root node, drop the child node - String id = node.getPeerId(); - if (isRootNode(id)) { - return null; - } - - int beginIndex = id.indexOf(':'); - int endIndex = id.lastIndexOf(':'); - String ip = beginIndex != -1 && endIndex != -1 ? id.substring(beginIndex+1, endIndex) : ""; //$NON-NLS-1$ - - // Get the loopback address - String loopback = IPAddressUtil.getInstance().getIPv4LoopbackAddress(); - // Empty IP address means loopback - if ("".equals(ip)) ip = loopback; //$NON-NLS-1$ - - // If the IP is a localhost IP, try the loopback IP - if (IPAddressUtil.getInstance().isLocalHost(ip)) { - // Build up the new id to lookup - StringBuilder newId = new StringBuilder(); - newId.append(id.substring(0, beginIndex)); - newId.append(':'); - newId.append(loopback); - newId.append(':'); - newId.append(id.substring(endIndex + 1)); - - // Try the lookup again - if (isRootNode(newId.toString())) { - return null; - } - } - - // Get the peer from the peer node - IPeer peer = node.getPeer(); - - // If the child peer represents the same agent as the parent peer, - // drop the child peer - String parentAgentID = parent.getPeer().getAgentID(); - if (parentAgentID != null && parentAgentID.equals(peer.getAgentID())) { - return null; - } - // If the child peer represents the same agent as another child peer, - // drop the child peer - String agentID = node.getPeer().getAgentID(); - if (agentID != null) { - IPeerModel[] matches = getService(ILocatorModelLookupService.class).lkupPeerModelByAgentId(parent.getPeerId(), agentID); - for (IPeerModel match : matches) { - if (agentID.equals(match.getPeer().getAgentID())) { - // Try to keep the peer with the real IP, filter the "127.0.0.1" peer - if ("127.0.0.1".equals(node.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST)) //$NON-NLS-1$ - && !"127.0.0.1".equals(match.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST))) { //$NON-NLS-1$ - // Keep the other child node - return null; - } - - if (!"127.0.0.1".equals(node.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST)) //$NON-NLS-1$ - && "127.0.0.1".equals(match.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST))) { //$NON-NLS-1$ - // Keep the node - getService(ILocatorModelUpdateService.class).removeChild(match); - } - - // If both nodes have a IP different from "127.0.0.1", keep the first node - if (!"127.0.0.1".equals(node.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST)) //$NON-NLS-1$ - && !"127.0.0.1".equals(match.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST))) { //$NON-NLS-1$ - // Keep the other child node - return null; - } - } - } - } - // If the child peer's IP address and port are the same as the parent's - // IP address and port, drop the child node - Map<String, String> parentPeerAttributes = parent.getPeer().getAttributes(); - if (parentPeerAttributes.get(IPeer.ATTR_IP_HOST) != null && parentPeerAttributes.get(IPeer.ATTR_IP_HOST).equals(peer.getAttributes().get(IPeer.ATTR_IP_HOST))) { - String parentPort = parentPeerAttributes.get(IPeer.ATTR_IP_PORT); - String port = peer.getAttributes().get(IPeer.ATTR_IP_PORT); - - if (parentPort != null && parentPort.equals(port)) return null; - } - - return node; - } - - /** - * Checks if the given peer id belongs to an already known root node - * or to one of the discovered nodes. - * - * @param id The peer id. Must not be <code>null</code>. - * @return <code>True</code> if the given id belongs to a root node, <code>false</code> otherwise. - */ - private boolean isRootNode(String id) { - Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - Assert.isNotNull(id); - - boolean isRoot = false; - - if (getService(ILocatorModelLookupService.class).lkupPeerModelById(id) != null) { - isRoot = true; - } else { - Map<String, IPeer> peers = Protocol.getLocator().getPeers(); - if (peers.containsKey(id)) { - isRoot = true; - } - } - - return isRoot; - } -} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/PeerModel.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/PeerModel.java index aae484eec..19d9e40af 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/PeerModel.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/PeerModel.java @@ -9,344 +9,775 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.locator.nodes; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; import java.util.Map; -import java.util.concurrent.atomic.AtomicBoolean; +import java.util.UUID; import java.util.concurrent.atomic.AtomicReference; import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.PlatformObject; +import org.eclipse.core.runtime.jobs.Job; import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.runtime.model.ContainerModelNode; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; +import org.eclipse.tcf.services.ILocator; +import org.eclipse.tcf.te.runtime.utils.net.IPAddressUtil; +import org.eclipse.tcf.te.tcf.core.Tcf; +import org.eclipse.tcf.te.tcf.core.listeners.interfaces.IChannelStateChangeListener; +import org.eclipse.tcf.te.tcf.locator.Scanner; +import org.eclipse.tcf.te.tcf.locator.activator.CoreBundleActivator; +import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; +import org.eclipse.tcf.te.tcf.locator.interfaces.IScanner; +import org.eclipse.tcf.te.tcf.locator.interfaces.ITracing; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService; +import org.eclipse.tcf.te.tcf.locator.listener.ChannelStateChangeListener; +import org.eclipse.tcf.te.tcf.locator.listener.LocatorListener; +import org.eclipse.tcf.te.tcf.locator.services.PeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.services.PeerModelQueryService; +import org.eclipse.tcf.te.tcf.locator.services.PeerModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.services.PeerModelUpdateService; /** - * Default peer model implementation. + * Default locator model implementation. */ -public class PeerModel extends ContainerModelNode implements IPeerModel { - // Reference to the parent locator model - private final ILocatorModel model; - // Reference to the peer id (cached for performance optimization) - private String peerId; +public class PeerModel extends PlatformObject implements IPeerModel { + // The unique model id + private final UUID uniqueId = UUID.randomUUID(); + // Flag to mark the model disposed + private boolean disposed; + + // The list of known peers + /* default */ final Map<String, IPeerNode> peers = new HashMap<String, IPeerNode>(); + // The list of "proxied" peers per proxy peer id + /* default */ final Map<String, List<IPeerNode>> peerChildren = new HashMap<String, List<IPeerNode>>(); + + // Reference to the scanner + private IScanner scanner = null; + + // Reference to the model locator listener + private ILocator.LocatorListener locatorListener = null; + // Reference to the model channel state change listener + private IChannelStateChangeListener channelStateChangeListener = null; + + // The list of registered model listeners + private final List<IModelListener> modelListener = new ArrayList<IModelListener>(); + + // Reference to the refresh service + private final IPeerModelRefreshService refreshService = new PeerModelRefreshService(this); + // Reference to the lookup service + private final IPeerModelLookupService lookupService = new PeerModelLookupService(this); + // Reference to the update service + private final IPeerModelUpdateService updateService = new PeerModelUpdateService(this); + // Reference to the query service + private final IPeerModelQueryService queryService = new PeerModelQueryService(this); /** * Constructor. - * - * @param model The parent locator model. Must not be <code>null</code>. - * @param peer The peer. Must not be <code>null</code>. */ - public PeerModel(ILocatorModel model, IPeer peer) { + public PeerModel() { super(); + disposed = false; - Assert.isNotNull(model); - this.model = model; - - Assert.isNotNull(peer); - - // Set the default properties before enabling the change events. - // The properties changed listeners should not be called from the - // constructor. - setProperty(IPeerModelProperties.PROP_INSTANCE, peer); - - // Initialize the peer id - peerId = peer.getID(); - Assert.isNotNull(peerId); - - // Peer model nodes can change the node parent at any time - allowSetParentOnNonNullParent = true; - // Peer model nodes does not have a parent by default - // -> allow change events with null parent - suppressEventsOnNullParent = false; - - // Enable change events - setChangeEventsEnabled(true); + channelStateChangeListener = new ChannelStateChangeListener(this); + Tcf.addChannelStateChangeListener(channelStateChangeListener); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#checkThreadAccess() + * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#addListener(org.eclipse.tcf.te.tcf.locator.core.interfaces.IModelListener) */ @Override - protected final boolean checkThreadAccess() { - return Protocol.isDispatchThread(); - } + public void addListener(IModelListener listener) { + Assert.isNotNull(listener); + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#getModel() - */ - @Override - public ILocatorModel getModel() { - return (ILocatorModel)getAdapter(ILocatorModel.class); - } + if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { + CoreBundleActivator.getTraceHandler().trace("PeerModel.addListener( " + listener + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ + } - /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#getPeer() - */ - @Override - public IPeer getPeer() { - return (IPeer)getAdapter(IPeer.class); + if (!modelListener.contains(listener)) modelListener.add(listener); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#getPeerId() + * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#removeListener(org.eclipse.tcf.te.tcf.locator.core.interfaces.IModelListener) */ @Override - public String getPeerId() { - return peerId; + public void removeListener(IModelListener listener) { + Assert.isNotNull(listener); + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + + if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { + CoreBundleActivator.getTraceHandler().trace("PeerModel.removeListener( " + listener + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ + } + + modelListener.remove(listener); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.ModelNode#getName() + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#getListener() */ @Override - public String getName() { - return getPeer().getName(); + public IModelListener[] getListener() { + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + return modelListener.toArray(new IModelListener[modelListener.size()]); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#getRemotePeerId() + * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#dispose() */ @Override - public String getRemotePeerId() { - // If the peer is a remote peer by itself, than we return getPeerId() - if ("RemotePeer".equals(getPeer().getClass().getSimpleName())) { //$NON-NLS-1$ - return getPeerId(); + public void dispose() { + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + + if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { + CoreBundleActivator.getTraceHandler().trace("PeerModel.dispose()", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ } - // Try to determine the remote peer ID - final AtomicReference<String> remotePeerId = new AtomicReference<String>(); - Runnable runnable = new Runnable() { - @Override - public void run() { - remotePeerId.set(getPeer().getAttributes().get("remote.id.transient")); //$NON-NLS-1$ - } - }; + // If already disposed, we are done immediately + if (disposed) return; + + disposed = true; + + final IModelListener[] listeners = getListener(); + if (listeners.length > 0) { + Protocol.invokeLater(new Runnable() { + @Override + public void run() { + for (IModelListener listener : listeners) { + listener.locatorModelDisposed(PeerModel.this); + } + } + }); + } + modelListener.clear(); - if (Protocol.isDispatchThread()) { - runnable.run(); + if (locatorListener != null) { + Protocol.getLocator().removeListener(locatorListener); + locatorListener = null; } - else { - Protocol.invokeAndWait(runnable); + + if (channelStateChangeListener != null) { + Tcf.removeChannelStateChangeListener(channelStateChangeListener); + channelStateChangeListener = null; + } + + if (scanner != null) { + stopScanner(); + scanner = null; } - return remotePeerId.get(); + peers.clear(); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#isComplete() + * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#isDisposed() */ @Override - public boolean isComplete() { - Assert.isTrue(checkThreadAccess(), "Illegal Thread Access"); //$NON-NLS-1$ - - boolean complete = true; - - // Determine the transport method - String transport = getPeer().getTransportName(); - // If the transport is not set, the peer attributes are incomplete - if (transport == null) { - complete = false; - } else { - // For TCP or SSL transport, ATTR_IP_HOST must not be null. - String ip = getPeer().getAttributes().get(IPeer.ATTR_IP_HOST); - String port = getPeer().getAttributes().get(IPeer.ATTR_IP_PORT); - if (("TCP".equals(transport) || "SSL".equals(transport)) && (ip == null || port == null)) { //$NON-NLS-1$ //$NON-NLS-2$ - complete = false; - } - - // Pipe and Loop transport does not require additional attributes - } - - return complete; + public boolean isDisposed() { + return disposed; } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#isStatic() + * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#getPeers() */ @Override - public boolean isStatic() { - final AtomicBoolean isStatic = new AtomicBoolean(); + public IPeerNode[] getPeers() { + final AtomicReference<IPeerNode[]> result = new AtomicReference<IPeerNode[]>(); Runnable runnable = new Runnable() { @Override public void run() { - String value = getPeer().getAttributes().get("static.transient"); //$NON-NLS-1$ - isStatic.set(value != null && Boolean.parseBoolean(value.trim())); + result.set(peers.values().toArray(new IPeerNode[peers.values().size()])); } }; if (Protocol.isDispatchThread()) runnable.run(); else Protocol.invokeAndWait(runnable); - return isStatic.get(); + return result.get(); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#isRemote() + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#getChildren(java.lang.String) */ @Override - public boolean isRemote() { - final AtomicBoolean isRemote = new AtomicBoolean(); + public List<IPeerNode> getChildren(final String parentPeerID) { + Assert.isNotNull(parentPeerID); + + final AtomicReference<List<IPeerNode>> result = new AtomicReference<List<IPeerNode>>(); Runnable runnable = new Runnable() { @Override public void run() { - // Determine the "remote" flag - String value = getPeer().getAttributes().get("remote.transient"); //$NON-NLS-1$ - boolean bValue = value != null && Boolean.parseBoolean(value.trim()); - - // The peer model node is considered to be remote if it is a remote peer - // or the "remote" flag is set. - isRemote.set("RemotePeer".equals(getPeer().getClass().getSimpleName()) || bValue); //$NON-NLS-1$ + List<IPeerNode> children = peerChildren.get(parentPeerID); + if (children == null) children = Collections.emptyList(); + result.set(children); } }; if (Protocol.isDispatchThread()) runnable.run(); else Protocol.invokeAndWait(runnable); - return isRemote.get(); + return Collections.unmodifiableList(result.get()); } /* (non-Javadoc) - * @see org.eclipse.core.runtime.PlatformObject#getAdapter(java.lang.Class) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#setChildren(java.lang.String, java.util.List) */ @Override - public Object getAdapter(final Class adapter) { - // NOTE: The getAdapter(...) method can be invoked from many place and - // many threads where we cannot control the calls. Therefore, this - // method is allowed be called from any thread. - final AtomicReference<Object> object = new AtomicReference<Object>(); - Runnable runnable = new Runnable() { - @Override - public void run() { - object.set(doGetAdapter(adapter)); - } - }; + public void setChildren(String parentPeerID, List<IPeerNode> children) { + Assert.isNotNull(parentPeerID); + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - if (Protocol.isDispatchThread()) { - runnable.run(); + if (children == null || children.size() == 0) { + peerChildren.remove(parentPeerID); + } else { + peerChildren.put(parentPeerID, new ArrayList<IPeerNode>(children)); + } + } + + /* (non-Javadoc) + * @see org.eclipse.core.runtime.PlatformObject#getAdapter(java.lang.Class) + */ + @Override + public Object getAdapter(Class adapter) { + if (adapter.isAssignableFrom(ILocator.LocatorListener.class)) { + return locatorListener; + } + if (adapter.isAssignableFrom(IScanner.class)) { + return scanner; + } + if (adapter.isAssignableFrom(IPeerModelRefreshService.class)) { + return refreshService; } - else { - Protocol.invokeAndWait(runnable); + if (adapter.isAssignableFrom(IPeerModelLookupService.class)) { + return lookupService; + } + if (adapter.isAssignableFrom(IPeerModelUpdateService.class)) { + return updateService; + } + if (adapter.isAssignableFrom(IPeerModelQueryService.class)) { + return queryService; + } + if (adapter.isAssignableFrom(Map.class)) { + return peers; } - return object.get() != null ? object.get() : super.getAdapter(adapter); + return super.getAdapter(adapter); + } + + /* (non-Javadoc) + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() { + return uniqueId.hashCode(); + } + + /* (non-Javadoc) + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public final boolean equals(Object obj) { + if (obj instanceof PeerModel) { + return uniqueId.equals(((PeerModel)obj).uniqueId); + } + return super.equals(obj); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#getService(java.lang.Class) + */ + @Override + @SuppressWarnings("unchecked") + public <V extends IPeerModelService> V getService(Class<V> serviceInterface) { + Assert.isNotNull(serviceInterface); + return (V)getAdapter(serviceInterface); } /** - * Returns an object which is an instance of the given class associated with this object. - * Returns <code>null</code> if no such object can be found. + * Check if the locator listener has been created and registered + * to the global locator service. * <p> - * This method must be called within the TCF dispatch thread! - * - * @param adapter The adapter class to look up. - * @return The adapter or <code>null</code>. + * <b>Note:</b> This method is not intended to be call from clients. */ - protected Object doGetAdapter(Class<?> adapter) { - Assert.isTrue(checkThreadAccess(), "Illegal Thread Access"); //$NON-NLS-1$ + public void checkLocatorListener() { + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + Assert.isNotNull(Protocol.getLocator()); - if (ILocatorModel.class.isAssignableFrom(adapter)) { - return model; + if (locatorListener == null) { + locatorListener = doCreateLocatorListener(this); + Protocol.getLocator().addListener(locatorListener); } + } - Object peer = getProperty(IPeerModelProperties.PROP_INSTANCE); - // Check with adapter.isAssignableFrom(...) to return the peer instance - // correctly if adapter is IPeer.class. - if (peer != null && adapter.isAssignableFrom(peer.getClass())) { - return peer; - } + /** + * Creates the locator listener instance. + * + * @param model The parent model. Must not be <code>null</code>. + * @return The locator listener instance. + */ + protected ILocator.LocatorListener doCreateLocatorListener(IPeerModel model) { + Assert.isNotNull(model); + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - return null; + return new LocatorListener(model); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#toString() + * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#getScanner() */ @Override - public String toString() { - final StringBuilder buffer = new StringBuilder(getClass().getSimpleName()); + public IScanner getScanner() { + if (scanner == null) scanner = new Scanner(this); + return scanner; + } - Runnable runnable = new Runnable() { - @Override - public void run() { - IPeer peer = getPeer(); - buffer.append(": id=" + peer.getID()); //$NON-NLS-1$ - buffer.append(", name=" + peer.getName()); //$NON-NLS-1$ - } - }; + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#startScanner(long, long) + */ + @Override + public void startScanner(long delay, long schedule) { + if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { + CoreBundleActivator.getTraceHandler().trace("PeerModel.startScanner( " + delay + ", " + schedule + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } - if (Protocol.isDispatchThread()) { - runnable.run(); + IScanner scanner = getScanner(); + Assert.isNotNull(scanner); + + // Pass on the schedule parameter + Map<String, Object> config = new HashMap<String, Object>(scanner.getConfiguration()); + config.put(IScanner.PROP_SCHEDULE, Long.valueOf(schedule)); + scanner.setConfiguration(config); + + // The default scanner implementation is a job. + // -> schedule here if it is a job + if (scanner instanceof Job) { + Job job = (Job)scanner; + job.setSystem(true); + job.setPriority(Job.DECORATE); + job.schedule(delay); } - else { - Protocol.invokeAndWait(runnable); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#stopScanner() + */ + @Override + public void stopScanner() { + if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { + CoreBundleActivator.getTraceHandler().trace("PeerModel.stopScanner()", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ } - buffer.append(", " + super.toString()); //$NON-NLS-1$ - return buffer.toString(); + if (scanner != null) { + // Terminate the scanner + scanner.terminate(); + // Reset the scanner reference + scanner = null; + } } /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#equals(java.lang.Object) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#validatePeer(org.eclipse.tcf.protocol.IPeer) */ @Override - public boolean equals(Object obj) { - if (obj instanceof PeerModel) { - return getPeerId().equals(((PeerModel)obj).getPeerId()); + public IPeer validatePeer(IPeer peer) { + Assert.isNotNull(peer); + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + + if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { + CoreBundleActivator.getTraceHandler().trace("PeerModel.validatePeer( " + peer.getID() + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ } - return super.equals(obj); + + IPeer result = peer; + + // Get the loopback address + String loopback = IPAddressUtil.getInstance().getIPv4LoopbackAddress(); + // Get the peer IP + String peerIP = peer.getAttributes().get(IPeer.ATTR_IP_HOST); + + // If the peer node is for local host, we ignore all peers not being + // associated with the loopback address. + if (IPAddressUtil.getInstance().isLocalHost(peerIP) && !loopback.equals(peerIP)) { + // Not loopback address -> drop the peer + result = null; + + if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { + CoreBundleActivator.getTraceHandler().trace("PeerModel.validatePeer: local host peer but not loopback address -> peer node dropped" //$NON-NLS-1$ + , ITracing.ID_TRACE_LOCATOR_MODEL, this); + } + } + + return result; } /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#hashCode() + * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#validatePeerNodeForAdd(org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.IPeerModel) */ @Override - public int hashCode() { - return getPeerId().hashCode(); + public IPeerNode validatePeerNodeForAdd(IPeerNode node) { + Assert.isNotNull(node); + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + + // Get the peer from the peer node + IPeer peer = node.getPeer(); + if (peer == null) return node; + + // Skip static peer IP address validation + return node; + +// // Skip validation if the transport type is not TCP or SSL +// String transport = peer.getTransportName(); +// if (transport == null || !"TCP".equals(transport) && !"SSL".equals(transport)){ //$NON-NLS-1$ //$NON-NLS-2$ +// return node; +// } +// +// if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { +// CoreBundleActivator.getTraceHandler().trace("PeerModel.validatePeerNodeForAdd( " + peer.getID() + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ +// } +// +// IPeerNode result = node; +// +// // Get the loopback address +// String loopback = IPAddressUtil.getInstance().getIPv4LoopbackAddress(); +// // Get the peer IP +// String peerIP = peer.getAttributes().get(IPeer.ATTR_IP_HOST); +// +// // If the peer node is for local host, we ignore all peers not being +// // associated with the loopback address. +// if (IPAddressUtil.getInstance().isLocalHost(peerIP) && !loopback.equals(peerIP)) { +// boolean drop = true; +// +// // Simulator nodes appears on local host IP addresses too, but does not have +// // a loopback peer available. We have to check the agent ID to determine if +// // a specific node can be dropped +// String agentID = peer.getAgentID(); +// if (agentID != null) { +// // Get all discovered peers +// Map<String, IPeer> peers = Protocol.getLocator().getPeers(); +// // Sort them by agent id +// Map<String, List<IPeer>> byAgentID = new HashMap<String, List<IPeer>>(); +// +// for (IPeer candidate : peers.values()) { +// if (candidate.getAgentID() == null) continue; +// +// List<IPeer> l = byAgentID.get(candidate.getAgentID()); +// if (l == null) { +// l = new ArrayList<IPeer>(); +// byAgentID.put(candidate.getAgentID(), l); +// } +// Assert.isNotNull(l); +// if (!l.contains(candidate)) l.add(candidate); +// } +// +// // Check all peers found for the same agent ID as the current peer to validate +// List<IPeer> candidates = byAgentID.get(agentID); +// if (candidates != null && candidates.size() > 1) { +// // Check if the found peers contains one with the loopback address +// drop = false; +// for (IPeer candidate : candidates) { +// String ip = candidate.getAttributes().get(IPeer.ATTR_IP_HOST); +// if (IPAddressUtil.getInstance().isLocalHost(ip) && loopback.equals(ip)) { +// drop = true; +// break; +// } +// } +// } else { +// // No other node for this agent ID -> do not drop the peer +// drop = false; +// } +// } +// +// +// if (drop) { +// // Not loopback address -> drop the peer +// result = null; +// +// if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { +// CoreBundleActivator.getTraceHandler().trace("PeerModel.validatePeerNodeForAdd: local host peer but not loopback address -> peer node dropped", //$NON-NLS-1$ +// ITracing.ID_TRACE_LOCATOR_MODEL, this); +// } +// } +// } +// +// // Continue filtering if the node is not yet dropped +// if (result != null) { +// List<IPeerNode> previousNodes = new ArrayList<IPeerNode>(); +// +// // Peers are filtered by agent id. Don't add the peer node if we have another peer +// // node already having the same agent id +// String agentId = peer.getAgentID(); +// if (agentId != null) { +// previousNodes.addAll(Arrays.asList(getService(IPeerModelLookupService.class).lkupPeerModelByAgentId(agentId))); +// } +// +// // Lookup for matching static peer nodes not found by the agent id lookup +// IPeerNode[] candidates = getService(IPeerModelLookupService.class).lkupMatchingStaticPeerModels(peer); +// for (IPeerNode candidate : candidates) { +// if (!previousNodes.contains(candidate)) previousNodes.add(candidate); +// } +// +// if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { +// CoreBundleActivator.getTraceHandler().trace("PeerModel.validatePeerNodeForAdd: agentId=" + agentId + ", Matching peer nodes " //$NON-NLS-1$ //$NON-NLS-2$ +// + (previousNodes.size() > 0 ? "found (" + previousNodes.size() +")" : "not found --> DONE") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ +// , ITracing.ID_TRACE_LOCATOR_MODEL, this); +// } +// +// for (IPeerNode previousNode : previousNodes) { +// // Get the peer for the previous node +// IPeer previousPeer = previousNode.getPeer(); +// if (previousPeer != null) { +// // Get the IP address of the previous node +// String previousPeerIP = previousPeer.getAttributes().get(IPeer.ATTR_IP_HOST); +// if (IPAddressUtil.getInstance().isLocalHost(previousPeerIP) && !loopback.equals(previousPeerIP) && loopback.equals(peerIP)) { +// // Remove the previous node from the model +// getService(IPeerModelUpdateService.class).remove(previousNode); +// +// if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { +// CoreBundleActivator.getTraceHandler().trace("PeerModel.validatePeerNodeForAdd: Previous peer removed and replaced by new peer representing the loopback address" //$NON-NLS-1$ +// , ITracing.ID_TRACE_LOCATOR_MODEL, this); +// } +// +// continue; +// } +// +// // Get the ports +// String peerPort = peer.getAttributes().get(IPeer.ATTR_IP_PORT); +// String previousPeerPort = previousPeer.getAttributes().get(IPeer.ATTR_IP_PORT); +// +// if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { +// CoreBundleActivator.getTraceHandler().trace("PeerModel.validatePeerNodeForAdd: peerIP=" + peerIP //$NON-NLS-1$ +// + ", peerPort=" + peerPort + ", previousPeerPort=" + previousPeerPort //$NON-NLS-1$ //$NON-NLS-2$ +// , ITracing.ID_TRACE_LOCATOR_MODEL, this); +// } +// +// // If the ports of the agent instances are identical, +// // than try to find the best representation of the agent instance +// if (peerPort != null && peerPort.equals(previousPeerPort)) { +// // Drop the current node +// result = null; +// +// if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { +// CoreBundleActivator.getTraceHandler().trace("PeerModel.validatePeerNodeForAdd: Previous peer node kept, new peer node dropped" //$NON-NLS-1$ +// , ITracing.ID_TRACE_LOCATOR_MODEL, this); +// } +// +// +// // Break the loop if the ports matched +// break; +// } +// +// if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { +// CoreBundleActivator.getTraceHandler().trace("PeerModel.validatePeerNodeForAdd: Previous peer node kept, new peer node added (Port mismatch)" //$NON-NLS-1$ +// , ITracing.ID_TRACE_LOCATOR_MODEL, this); +// } +// } +// } +// } +// +// return result; } /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#postSetProperties(java.util.Map) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#validateChildPeerNodeForAdd(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode) */ @Override - protected void postSetProperties(Map<String, ?> properties) { - Assert.isTrue(checkThreadAccess(), "Illegal Thread Access"); //$NON-NLS-1$ - Assert.isNotNull(properties); - Assert.isNotNull(getPeer()); + public IPeerNode validateChildPeerNodeForAdd(final IPeerNode node) { + Assert.isNotNull(node); + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + + if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { + CoreBundleActivator.getTraceHandler().trace("PeerModel.validateChildPeerNodeForAdd( " + node.getPeerId() + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ + } - // New properties applied. Update the element id - peerId = getPeer().getID(); - Assert.isNotNull(peerId); + // Determine the parent node. If null, the child node is invalid + // and cannot be added + final IPeerNode parent = node.getParent(IPeerNode.class); + if (parent == null) return null; - super.postSetProperties(properties); + return validateChildPeerNodeForAdd(parent, node); } - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#postSetProperty(java.lang.String, java.lang.Object, java.lang.Object) + /** + * Validates the given child peer model node in relation to the given parent peer model node + * hierarchy. + * <p> + * The method is recursive. + * + * @param parent The parent model node. Must not be <code>null</code>. + * @param node The child model node. Must not be <code>null</code>. + * + * @return The validated child peer model node, or <code>null</code>. */ - @Override - public void postSetProperty(String key, Object value, Object oldValue) { - Assert.isTrue(checkThreadAccess(), "Illegal Thread Access"); //$NON-NLS-1$ - Assert.isNotNull(key); - Assert.isNotNull(getPeer()); + protected IPeerNode validateChildPeerNodeForAdd(IPeerNode parent, IPeerNode node) { + Assert.isNotNull(parent); + Assert.isNotNull(node); + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + + if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { + CoreBundleActivator.getTraceHandler().trace("PeerModel.validateChildPeerNodeForAdd( " + parent.getPeerId() + ", " + node.getPeerId() + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + // Validate against the given parent + if (doValidateChildPeerNodeForAdd(parent, node) == null) { + return null; + } - // If the peer instance changed, update the element id - if (IPeerModelProperties.PROP_INSTANCE.equals(key)) { - peerId = getPeer().getID(); - Assert.isNotNull(peerId); + // If the parent node is child node by itself, validate the + // child node against the parent parent node. + if (parent.getParent(IPeerNode.class) != null) { + IPeerNode parentParentNode = parent.getParent(IPeerNode.class); + if (doValidateChildPeerNodeForAdd(parentParentNode, node) == null) { + return null; + } + + // And validate the child node against all child nodes of the parent parent. + List<IPeerNode> childrenList = getChildren(parentParentNode.getPeerId()); + IPeerNode[] children = childrenList.toArray(new IPeerNode[childrenList.size()]); + for (IPeerNode parentParentChild : children) { + if (node.equals(parentParentChild) || parent.equals(parentParentChild)) { + return null; + } + if (doValidateChildPeerNodeForAdd(parentParentChild, node) == null) { + return null; + } + } } - super.postSetProperty(key, value, oldValue); + return node; } - /* (non-Javadoc) - * @see org.eclipse.tcf.te.runtime.model.ModelNode#isVisible() + /** + * Validates the given child peer model node in relation to the given parent peer model node. + * <p> + * The method is non-recursive. + * + * @param parent The parent model node. Must not be <code>null</code>. + * @param node The child model node. Must not be <code>null</code>. + * + * @return The validated child peer model node, or <code>null</code>. */ - @Override - public boolean isVisible() { - IPeer peer = getPeer(); - return peer != null && peer.getAttributes().containsKey(IPeerModelProperties.PROP_VISIBLE) - ? Boolean.valueOf(peer.getAttributes().get(IPeerModelProperties.PROP_VISIBLE)).booleanValue() : true; + protected IPeerNode doValidateChildPeerNodeForAdd(IPeerNode parent, IPeerNode node) { + Assert.isNotNull(parent); + Assert.isNotNull(node); + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + + if (CoreBundleActivator.getTraceHandler().isSlotEnabled(0, ITracing.ID_TRACE_LOCATOR_MODEL)) { + CoreBundleActivator.getTraceHandler().trace("PeerModel.doValidateChildPeerNodeForAdd( " + parent.getPeerId() + ", " + node.getPeerId() + " )", ITracing.ID_TRACE_LOCATOR_MODEL, this); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + // If the child node is already visible as root node, drop the child node + String id = node.getPeerId(); + if (isRootNode(id)) { + return null; + } + + int beginIndex = id.indexOf(':'); + int endIndex = id.lastIndexOf(':'); + String ip = beginIndex != -1 && endIndex != -1 ? id.substring(beginIndex+1, endIndex) : ""; //$NON-NLS-1$ + + // Get the loopback address + String loopback = IPAddressUtil.getInstance().getIPv4LoopbackAddress(); + // Empty IP address means loopback + if ("".equals(ip)) ip = loopback; //$NON-NLS-1$ + + // If the IP is a localhost IP, try the loopback IP + if (IPAddressUtil.getInstance().isLocalHost(ip)) { + // Build up the new id to lookup + StringBuilder newId = new StringBuilder(); + newId.append(id.substring(0, beginIndex)); + newId.append(':'); + newId.append(loopback); + newId.append(':'); + newId.append(id.substring(endIndex + 1)); + + // Try the lookup again + if (isRootNode(newId.toString())) { + return null; + } + } + + // Get the peer from the peer node + IPeer peer = node.getPeer(); + + // If the child peer represents the same agent as the parent peer, + // drop the child peer + String parentAgentID = parent.getPeer().getAgentID(); + if (parentAgentID != null && parentAgentID.equals(peer.getAgentID())) { + return null; + } + // If the child peer represents the same agent as another child peer, + // drop the child peer + String agentID = node.getPeer().getAgentID(); + if (agentID != null) { + IPeerNode[] matches = getService(IPeerModelLookupService.class).lkupPeerModelByAgentId(parent.getPeerId(), agentID); + for (IPeerNode match : matches) { + if (agentID.equals(match.getPeer().getAgentID())) { + // Try to keep the peer with the real IP, filter the "127.0.0.1" peer + if ("127.0.0.1".equals(node.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST)) //$NON-NLS-1$ + && !"127.0.0.1".equals(match.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST))) { //$NON-NLS-1$ + // Keep the other child node + return null; + } + + if (!"127.0.0.1".equals(node.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST)) //$NON-NLS-1$ + && "127.0.0.1".equals(match.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST))) { //$NON-NLS-1$ + // Keep the node + getService(IPeerModelUpdateService.class).removeChild(match); + } + + // If both nodes have a IP different from "127.0.0.1", keep the first node + if (!"127.0.0.1".equals(node.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST)) //$NON-NLS-1$ + && !"127.0.0.1".equals(match.getPeer().getAttributes().get(IPeer.ATTR_IP_HOST))) { //$NON-NLS-1$ + // Keep the other child node + return null; + } + } + } + } + // If the child peer's IP address and port are the same as the parent's + // IP address and port, drop the child node + Map<String, String> parentPeerAttributes = parent.getPeer().getAttributes(); + if (parentPeerAttributes.get(IPeer.ATTR_IP_HOST) != null && parentPeerAttributes.get(IPeer.ATTR_IP_HOST).equals(peer.getAttributes().get(IPeer.ATTR_IP_HOST))) { + String parentPort = parentPeerAttributes.get(IPeer.ATTR_IP_PORT); + String port = peer.getAttributes().get(IPeer.ATTR_IP_PORT); + + if (parentPort != null && parentPort.equals(port)) return null; + } + + return node; + } + + /** + * Checks if the given peer id belongs to an already known root node + * or to one of the discovered nodes. + * + * @param id The peer id. Must not be <code>null</code>. + * @return <code>True</code> if the given id belongs to a root node, <code>false</code> otherwise. + */ + private boolean isRootNode(String id) { + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + Assert.isNotNull(id); + + boolean isRoot = false; + + if (getService(IPeerModelLookupService.class).lkupPeerModelById(id) != null) { + isRoot = true; + } else { + Map<String, IPeer> peers = Protocol.getLocator().getPeers(); + if (peers.containsKey(id)) { + isRoot = true; + } + } + + return isRoot; } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/PeerNode.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/PeerNode.java new file mode 100644 index 000000000..8888fa798 --- /dev/null +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/nodes/PeerNode.java @@ -0,0 +1,405 @@ +/******************************************************************************* + * Copyright (c) 2011, 2013 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.locator.nodes; + +import java.util.Map; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; + +import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.tcf.protocol.IPeer; +import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.core.interfaces.IConnectable; +import org.eclipse.tcf.te.core.utils.ConnectStateHelper; +import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback; +import org.eclipse.tcf.te.runtime.model.ContainerModelNode; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepperOperationService; +import org.eclipse.tcf.te.runtime.stepper.utils.StepperHelper; +import org.eclipse.tcf.te.runtime.utils.StatusHelper; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IStepperServiceOperations; + + +/** + * Default peer model implementation. + */ +public class PeerNode extends ContainerModelNode implements IPeerNode { + // Reference to the parent locator model + private final IPeerModel model; + // Reference to the peer id (cached for performance optimization) + private String peerId; + + /** + * Constructor. + * + * @param model The parent locator model. Must not be <code>null</code>. + * @param peer The peer. Must not be <code>null</code>. + */ + public PeerNode(IPeerModel model, IPeer peer) { + super(); + + Assert.isNotNull(model); + this.model = model; + + Assert.isNotNull(peer); + + // Set the default properties before enabling the change events. + // The properties changed listeners should not be called from the + // constructor. + setProperty(IPeerNodeProperties.PROP_INSTANCE, peer); + setProperty(IPeerNodeProperties.PROP_CONNECT_STATE, IConnectable.STATE_DISCONNECTED); + + // Initialize the peer id + peerId = peer.getID(); + Assert.isNotNull(peerId); + + // Peer model nodes can change the node parent at any time + allowSetParentOnNonNullParent = true; + // Peer model nodes does not have a parent by default + // -> allow change events with null parent + suppressEventsOnNullParent = false; + + // Enable change events + setChangeEventsEnabled(true); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#checkThreadAccess() + */ + @Override + protected final boolean checkThreadAccess() { + return Protocol.isDispatchThread(); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode#getModel() + */ + @Override + public IPeerModel getModel() { + return (IPeerModel)getAdapter(IPeerModel.class); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode#getPeer() + */ + @Override + public IPeer getPeer() { + return (IPeer)getAdapter(IPeer.class); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode#getPeerId() + */ + @Override + public String getPeerId() { + return peerId; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.model.ModelNode#getName() + */ + @Override + public String getName() { + return getPeer().getName(); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode#isComplete() + */ + @Override + public boolean isComplete() { + Assert.isTrue(checkThreadAccess(), "Illegal Thread Access"); //$NON-NLS-1$ + + boolean complete = true; + + // Determine the transport method + String transport = getPeer().getTransportName(); + // If the transport is not set, the peer attributes are incomplete + if (transport == null) { + complete = false; + } else { + // For TCP or SSL transport, ATTR_IP_HOST must not be null. + String ip = getPeer().getAttributes().get(IPeer.ATTR_IP_HOST); + String port = getPeer().getAttributes().get(IPeer.ATTR_IP_PORT); + if (("TCP".equals(transport) || "SSL".equals(transport)) && (ip == null || port == null)) { //$NON-NLS-1$ //$NON-NLS-2$ + complete = false; + } + + // Pipe and Loop transport does not require additional attributes + } + + return complete; + } + + /* (non-Javadoc) + * @see org.eclipse.core.runtime.PlatformObject#getAdapter(java.lang.Class) + */ + @Override + public Object getAdapter(final Class adapter) { + // NOTE: The getAdapter(...) method can be invoked from many place and + // many threads where we cannot control the calls. Therefore, this + // method is allowed be called from any thread. + final AtomicReference<Object> object = new AtomicReference<Object>(); + Runnable runnable = new Runnable() { + @Override + public void run() { + object.set(doGetAdapter(adapter)); + } + }; + + if (Protocol.isDispatchThread()) { + runnable.run(); + } + else { + Protocol.invokeAndWait(runnable); + } + + return object.get() != null ? object.get() : super.getAdapter(adapter); + } + + /** + * Returns an object which is an instance of the given class associated with this object. + * Returns <code>null</code> if no such object can be found. + * <p> + * This method must be called within the TCF dispatch thread! + * + * @param adapter The adapter class to look up. + * @return The adapter or <code>null</code>. + */ + protected Object doGetAdapter(Class<?> adapter) { + Assert.isTrue(checkThreadAccess(), "Illegal Thread Access"); //$NON-NLS-1$ + + if (IPeerModel.class.isAssignableFrom(adapter)) { + return model; + } + + Object peer = getProperty(IPeerNodeProperties.PROP_INSTANCE); + // Check with adapter.isAssignableFrom(...) to return the peer instance + // correctly if adapter is IPeer.class. + if (peer != null && adapter.isAssignableFrom(peer.getClass())) { + return peer; + } + + return null; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#toString() + */ + @Override + public String toString() { + final StringBuilder buffer = new StringBuilder(getClass().getSimpleName()); + + Runnable runnable = new Runnable() { + @Override + public void run() { + IPeer peer = getPeer(); + buffer.append(": id=" + peer.getID()); //$NON-NLS-1$ + buffer.append(", name=" + peer.getName()); //$NON-NLS-1$ + } + }; + + if (Protocol.isDispatchThread()) { + runnable.run(); + } + else { + Protocol.invokeAndWait(runnable); + } + + buffer.append(", " + super.toString()); //$NON-NLS-1$ + return buffer.toString(); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) { + if (obj instanceof PeerNode) { + return getPeerId().equals(((PeerNode)obj).getPeerId()); + } + return super.equals(obj); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#hashCode() + */ + @Override + public int hashCode() { + return getPeerId().hashCode(); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#postSetProperties(java.util.Map) + */ + @Override + protected void postSetProperties(Map<String, ?> properties) { + Assert.isTrue(checkThreadAccess(), "Illegal Thread Access"); //$NON-NLS-1$ + Assert.isNotNull(properties); + Assert.isNotNull(getPeer()); + + // New properties applied. Update the element id + peerId = getPeer().getID(); + Assert.isNotNull(peerId); + + super.postSetProperties(properties); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#postSetProperty(java.lang.String, java.lang.Object, java.lang.Object) + */ + @Override + public void postSetProperty(String key, Object value, Object oldValue) { + Assert.isTrue(checkThreadAccess(), "Illegal Thread Access"); //$NON-NLS-1$ + Assert.isNotNull(key); + Assert.isNotNull(getPeer()); + + // If the peer instance changed, update the element id + if (IPeerNodeProperties.PROP_INSTANCE.equals(key)) { + peerId = getPeer().getID(); + Assert.isNotNull(peerId); + } + + super.postSetProperty(key, value, oldValue); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.model.ModelNode#isVisible() + */ + @Override + public boolean isVisible() { + IPeer peer = getPeer(); + return peer != null && peer.getAttributes().containsKey(IPeerNodeProperties.PROP_VISIBLE) + ? Boolean.valueOf(peer.getAttributes().get(IPeerNodeProperties.PROP_VISIBLE)).booleanValue() : true; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.core.interfaces.IConnectable#getConnectState() + */ + @Override + public int getConnectState() { + final AtomicInteger state = new AtomicInteger(STATE_UNKNOWN); + Protocol.invokeAndWait(new Runnable() { + @Override + public void run() { + if (getProperty(IPeerNodeProperties.PROP_CONNECT_STATE) != null) { + state.set(getIntProperty(IPeerNodeProperties.PROP_CONNECT_STATE)); + } + } + }); + return state.get(); + } + + @Override + public boolean setConnectState(final int newState) { + final AtomicBoolean result = new AtomicBoolean(false); + if (isConnectStateChangeAllowed(newState)) { + Protocol.invokeAndWait(new Runnable() { + @Override + public void run() { + result.set(setProperty(IPeerNodeProperties.PROP_CONNECT_STATE, newState)); + } + }); + } + return result.get(); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.core.interfaces.IConnectable#changeConnectState(int, org.eclipse.tcf.te.runtime.interfaces.callback.ICallback) + */ + @Override + public void changeConnectState(final int action, ICallback callback, IProgressMonitor monitor) throws IllegalArgumentException { + final int oldState = getConnectState(); + if (!isConnectStateChangeActionAllowed(action)) { + IllegalArgumentException e = new IllegalArgumentException("Cannot change state from '" + ConnectStateHelper.getConnectState(oldState) + "' using action '" + ConnectStateHelper.getConnectState(action) + "'."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + if (callback != null) { + callback.done(this, StatusHelper.getStatus(e)); + } + else { + throw e; + } + } + + String operation = null; + int intermediateState = 0; + + switch (action) { + case ACTION_CONNECT: + operation = IStepperServiceOperations.CONNECT; + intermediateState = STATE_CONNECT_SCHEDULED; + break; + case ACTION_DISCONNECT: + operation = IStepperServiceOperations.DISCONNECT; + intermediateState = STATE_DISCONNECT_SCHEDULED; + break; + } + + IStepperOperationService service = StepperHelper.getService(this, operation); + if (service != null) { + setConnectState(intermediateState); + StepperHelper.scheduleStepperJob(this, operation, service, callback, monitor); + } + else if (callback != null) { + callback.done(this, StatusHelper.getStatus(new NullPointerException("Missing stepper operation service for " + getName() + "."))); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + + @Override + public boolean isConnectStateChangeActionAllowed(int action) { + int state = getConnectState(); + switch (state) { + case STATE_CONNECTED: + case STATE_CONNECT_SCHEDULED: + case STATE_CONNECTING: + return isAllowedState(action, ACTION_DISCONNECT); + case STATE_DISCONNECTED: + return isAllowedState(action, ACTION_CONNECT); + } + return false; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.core.interfaces.IConnectable#isConnectStateChangeAllowed(int) + */ + @Override + public boolean isConnectStateChangeAllowed(int newState) { + int state = getConnectState(); + switch (state) { + case STATE_CONNECTED: + return isAllowedState(newState, STATE_DISCONNECTED, STATE_DISCONNECT_SCHEDULED, STATE_DISCONNECTING); + case STATE_CONNECT_SCHEDULED: + return isAllowedState(newState, STATE_CONNECTING, STATE_CONNECTED, STATE_DISCONNECTED, STATE_DISCONNECT_SCHEDULED, STATE_DISCONNECTING); + case STATE_CONNECTING: + return isAllowedState(newState, STATE_CONNECTED, STATE_DISCONNECT_SCHEDULED, STATE_DISCONNECTING, STATE_DISCONNECTED); + case STATE_DISCONNECTED: + return isAllowedState(newState, STATE_CONNECTED, STATE_CONNECT_SCHEDULED, STATE_CONNECTING); + case STATE_DISCONNECT_SCHEDULED: + return isAllowedState(newState, STATE_DISCONNECTING, STATE_DISCONNECTED); + case STATE_DISCONNECTING: + return isAllowedState(newState, STATE_DISCONNECTED); + case STATE_UNKNOWN: + return isAllowedState(newState, STATE_DISCONNECTED); + } + return false; + } + + private boolean isAllowedState(int state, int... allowedStates) { + for (int allowedState : allowedStates) { + if (state == allowedState) { + return true; + } + } + return false; + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/persistence/GsonPeerPersistenceDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/persistence/GsonPeerPersistenceDelegate.java index ce3aad621..a274f8129 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/persistence/GsonPeerPersistenceDelegate.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/persistence/GsonPeerPersistenceDelegate.java @@ -20,11 +20,11 @@ import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode; import org.eclipse.tcf.te.runtime.persistence.delegates.GsonMapPersistenceDelegate; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; -import org.eclipse.tcf.te.tcf.locator.nodes.PeerModel; +import org.eclipse.tcf.te.tcf.locator.nodes.PeerNode; /** * Peer to string persistence delegate implementation. @@ -75,8 +75,8 @@ public class GsonPeerPersistenceDelegate extends GsonMapPersistenceDelegate { if (context instanceof IPeer || IPeer.class.equals(context)) { return peer; } - else if (context instanceof Class && (((Class<?>)context).isAssignableFrom(IPeerModel.class))) { - final AtomicReference<IPeerModel> model = new AtomicReference<IPeerModel>(); + else if (context instanceof Class && (((Class<?>)context).isAssignableFrom(IPeerNode.class))) { + final AtomicReference<IPeerNode> model = new AtomicReference<IPeerNode>(); Runnable runnable = new Runnable() { @Override @@ -85,14 +85,14 @@ public class GsonPeerPersistenceDelegate extends GsonMapPersistenceDelegate { String id = peer.getID(); if (id != null) { // Lookup the id within the model - IPeerModel peerModel = Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelById(id); - if (peerModel == null) { + IPeerNode peerNode = Model.getModel().getService(IPeerModelLookupService.class).lkupPeerModelById(id); + if (peerNode == null) { // Not found in the model -> create a ghost object - peerModel = new PeerModel(Model.getModel(), peer); - peerModel.setProperty(IModelNode.PROPERTY_IS_GHOST, true); + peerNode = new PeerNode(Model.getModel(), peer); + peerNode.setProperty(IModelNode.PROPERTY_IS_GHOST, true); } - model.set(peerModel); + model.set(peerNode); } } }; @@ -122,11 +122,11 @@ public class GsonPeerPersistenceDelegate extends GsonMapPersistenceDelegate { if (context instanceof IPeer) { peer = (IPeer)context; } - else if (context instanceof IPeerModel) { - peer = ((IPeerModel)context).getPeer(); + else if (context instanceof IPeerNode) { + peer = ((IPeerNode)context).getPeer(); } - else if (context instanceof IPeerModelProvider) { - peer = ((IPeerModelProvider)context).getPeerModel().getPeer(); + else if (context instanceof IPeerNodeProvider) { + peer = ((IPeerNodeProvider)context).getPeerModel().getPeer(); } return peer; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/AbstractLocatorModelService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/AbstractPeerModelService.java index ea6df29b5..5a3e37ea8 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/AbstractLocatorModelService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/AbstractPeerModelService.java @@ -11,32 +11,32 @@ package org.eclipse.tcf.te.tcf.locator.services; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.PlatformObject; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelService; /** - * Abstract locator model service base implementation. + * Abstract peer model service base implementation. */ -public abstract class AbstractLocatorModelService extends PlatformObject implements ILocatorModelService { +public abstract class AbstractPeerModelService extends PlatformObject implements IPeerModelService { // Reference to the parent locator model - private final ILocatorModel locatorModel; + private final IPeerModel peerModel; /** * Constructor. * - * @param parentModel The parent locator model instance. Must not be <code>null</code>. + * @param parentModel The parent peer model instance. Must not be <code>null</code>. */ - public AbstractLocatorModelService(ILocatorModel parentModel) { + public AbstractPeerModelService(IPeerModel parentModel) { Assert.isNotNull(parentModel); - locatorModel = parentModel; + peerModel = parentModel; } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelService#getLocatorModel() + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelService#getPeerModel() */ @Override - public final ILocatorModel getLocatorModel() { - return locatorModel; + public final IPeerModel getPeerModel() { + return peerModel; } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/AbstractSimulatorService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/AbstractSimulatorService.java index acffb7f09..9b7c3259f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/AbstractSimulatorService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/AbstractSimulatorService.java @@ -15,7 +15,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.services.AbstractService; import org.eclipse.tcf.te.runtime.services.interfaces.ISimulatorService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Abstract simulator service implementation. @@ -27,12 +27,12 @@ public abstract class AbstractSimulatorService extends AbstractService implement */ @Override public boolean isValidContext(final Object context, String config) { - if (context instanceof IPeerModel) { + if (context instanceof IPeerNode) { final AtomicBoolean complete = new AtomicBoolean(false); Runnable runnable = new Runnable() { @Override public void run() { - complete.set(((IPeerModel)context).isComplete()); + complete.set(((IPeerNode)context).isComplete()); } }; Protocol.invokeAndWait(runnable); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/LocatorModelLookupService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelLookupService.java index d8fb46c8f..b21e4f898 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/LocatorModelLookupService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelLookupService.java @@ -15,23 +15,23 @@ import java.util.List; import org.eclipse.core.runtime.Assert; import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService; /** * Default locator model lookup service implementation. */ -public class LocatorModelLookupService extends AbstractLocatorModelService implements ILocatorModelLookupService { +public class PeerModelLookupService extends AbstractPeerModelService implements IPeerModelLookupService { /** * Constructor. * * @param parentModel The parent locator model instance. Must not be <code>null</code>. */ - public LocatorModelLookupService(ILocatorModel parentModel) { + public PeerModelLookupService(IPeerModel parentModel) { super(parentModel); } @@ -39,12 +39,12 @@ public class LocatorModelLookupService extends AbstractLocatorModelService imple * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.services.ILocatorModelLookupService#lkupPeerModelById(java.lang.String) */ @Override - public IPeerModel lkupPeerModelById(String id) { + public IPeerNode lkupPeerModelById(String id) { Assert.isNotNull(id); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - IPeerModel node = null; - for (IPeerModel candidate : getLocatorModel().getPeers()) { + IPeerNode node = null; + for (IPeerNode candidate : getPeerModel().getPeers()) { IPeer peer = candidate.getPeer(); if (id.equals(peer.getID())) { node = candidate; @@ -60,16 +60,16 @@ public class LocatorModelLookupService extends AbstractLocatorModelService imple } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService#lkupPeerModelById(java.lang.String, java.lang.String) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService#lkupPeerModelById(java.lang.String, java.lang.String) */ @Override - public IPeerModel lkupPeerModelById(String parentId, String id) { + public IPeerNode lkupPeerModelById(String parentId, String id) { Assert.isNotNull(parentId); Assert.isNotNull(id); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - IPeerModel node = null; - for (IPeerModel candidate : getLocatorModel().getChildren(parentId)) { + IPeerNode node = null; + for (IPeerNode candidate : getPeerModel().getChildren(parentId)) { IPeer peer = candidate.getPeer(); if (id.equals(peer.getID())) { node = candidate; @@ -85,75 +85,75 @@ public class LocatorModelLookupService extends AbstractLocatorModelService imple } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService#lkupPeerModelByAgentId(java.lang.String) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService#lkupPeerModelByAgentId(java.lang.String) */ @Override - public IPeerModel[] lkupPeerModelByAgentId(String agentId) { + public IPeerNode[] lkupPeerModelByAgentId(String agentId) { Assert.isNotNull(agentId); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - List<IPeerModel> nodes = new ArrayList<IPeerModel>(); - for (IPeerModel candidate : getLocatorModel().getPeers()) { + List<IPeerNode> nodes = new ArrayList<IPeerNode>(); + for (IPeerNode candidate : getPeerModel().getPeers()) { IPeer peer = candidate.getPeer(); if (agentId.equals(peer.getAgentID())) { nodes.add(candidate); } } - return nodes.toArray(new IPeerModel[nodes.size()]); + return nodes.toArray(new IPeerNode[nodes.size()]); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService#lkupPeerModelByAgentId(java.lang.String, java.lang.String) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService#lkupPeerModelByAgentId(java.lang.String, java.lang.String) */ @Override - public IPeerModel[] lkupPeerModelByAgentId(String parentId, String agentId) { + public IPeerNode[] lkupPeerModelByAgentId(String parentId, String agentId) { Assert.isNotNull(parentId); Assert.isNotNull(agentId); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - List<IPeerModel> nodes = new ArrayList<IPeerModel>(); - for (IPeerModel candidate : getLocatorModel().getChildren(parentId)) { + List<IPeerNode> nodes = new ArrayList<IPeerNode>(); + for (IPeerNode candidate : getPeerModel().getChildren(parentId)) { IPeer peer = candidate.getPeer(); if (agentId.equals(peer.getAgentID())) { nodes.add(candidate); } } - return nodes.toArray(new IPeerModel[nodes.size()]); + return nodes.toArray(new IPeerNode[nodes.size()]); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService#lkupPeerModelByName(java.lang.String) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService#lkupPeerModelByName(java.lang.String) */ @Override - public IPeerModel[] lkupPeerModelByName(String name) { + public IPeerNode[] lkupPeerModelByName(String name) { Assert.isNotNull(name); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - List<IPeerModel> nodes = new ArrayList<IPeerModel>(); - for (IPeerModel candidate : getLocatorModel().getPeers()) { + List<IPeerNode> nodes = new ArrayList<IPeerNode>(); + for (IPeerNode candidate : getPeerModel().getPeers()) { IPeer peer = candidate.getPeer(); if (name.equals(peer.getName())) { nodes.add(candidate); } } - return nodes.toArray(new IPeerModel[nodes.size()]); + return nodes.toArray(new IPeerNode[nodes.size()]); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService#lkupPeerModelBySupportedServices(java.lang.String[], java.lang.String[]) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService#lkupPeerModelBySupportedServices(java.lang.String[], java.lang.String[]) */ @Override - public IPeerModel[] lkupPeerModelBySupportedServices(String[] expectedLocalServices, String[] expectedRemoteServices) { + public IPeerNode[] lkupPeerModelBySupportedServices(String[] expectedLocalServices, String[] expectedRemoteServices) { Assert.isTrue(!Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - ILocatorModel model = getLocatorModel(); - ILocatorModelPeerNodeQueryService queryService = model.getService(ILocatorModelPeerNodeQueryService.class); + IPeerModel model = getPeerModel(); + IPeerModelQueryService queryService = model.getService(IPeerModelQueryService.class); - List<IPeerModel> nodes = new ArrayList<IPeerModel>(); - for (IPeerModel candidate : model.getPeers()) { + List<IPeerNode> nodes = new ArrayList<IPeerNode>(); + for (IPeerNode candidate : model.getPeers()) { String services = queryService.queryLocalServices(candidate); boolean matchesExpectations = true; @@ -193,33 +193,30 @@ public class LocatorModelLookupService extends AbstractLocatorModelService imple if (matchesExpectations) nodes.add(candidate); } - return nodes.toArray(new IPeerModel[nodes.size()]); + return nodes.toArray(new IPeerNode[nodes.size()]); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService#lkupMatchingStaticPeerModels(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService#lkupMatchingStaticPeerModels(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode) */ @Override - public IPeerModel[] lkupMatchingStaticPeerModels(IPeerModel peerNode) { + public IPeerNode[] lkupMatchingStaticPeerModels(IPeerNode peerNode) { Assert.isNotNull(peerNode); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ return lkupMatchingStaticPeerModels(peerNode.getPeer()); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService#lkupMatchingStaticPeerModels(org.eclipse.tcf.protocol.IPeer) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService#lkupMatchingStaticPeerModels(org.eclipse.tcf.protocol.IPeer) */ @Override - public IPeerModel[] lkupMatchingStaticPeerModels(IPeer peer) { + public IPeerNode[] lkupMatchingStaticPeerModels(IPeer peer) { Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - List<IPeerModel> nodes = new ArrayList<IPeerModel>(); + List<IPeerNode> nodes = new ArrayList<IPeerNode>(); if (peer != null) { - for (IPeerModel candidate : getLocatorModel().getPeers()) { - // Look only at the static peers here - if (!candidate.isStatic()) continue; - + for (IPeerNode candidate : getPeerModel().getPeers()) { // If the agent id is available, match up the agent id first. if (candidate.getPeer().getAgentID() != null && candidate.getPeer().getAgentID().equals(peer.getAgentID())) { nodes.add(candidate); @@ -245,6 +242,6 @@ public class LocatorModelLookupService extends AbstractLocatorModelService imple } } - return nodes.toArray(new IPeerModel[nodes.size()]); + return nodes.toArray(new IPeerNode[nodes.size()]); } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/LocatorModelPeerNodeQueryService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelQueryService.java index 356f3536a..51f3cd282 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/LocatorModelPeerNodeQueryService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelQueryService.java @@ -23,31 +23,31 @@ import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.interfaces.IConditionTester; import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.core.interfaces.IChannelManager; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService; /** * Default locator model peer node query service implementation. */ -public class LocatorModelPeerNodeQueryService extends AbstractLocatorModelService implements ILocatorModelPeerNodeQueryService { +public class PeerModelQueryService extends AbstractPeerModelService implements IPeerModelQueryService { /** * Constructor. * * @param parentModel The parent locator model instance. Must not be <code>null</code>. */ - public LocatorModelPeerNodeQueryService(ILocatorModel parentModel) { + public PeerModelQueryService(IPeerModel parentModel) { super(parentModel); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService#queryLocalServices(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService#queryLocalServices(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode) */ @Override - public String queryLocalServices(final IPeerModel node) { + public String queryLocalServices(final IPeerNode node) { Assert.isTrue(!Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ Assert.isNotNull(node); @@ -56,7 +56,7 @@ public class LocatorModelPeerNodeQueryService extends AbstractLocatorModelServic Protocol.invokeAndWait(new Runnable() { @Override public void run() { - services.set(node.getStringProperty(IPeerModelProperties.PROP_LOCAL_SERVICES)); + services.set(node.getStringProperty(IPeerNodeProperties.PROP_LOCAL_SERVICES)); } }); @@ -75,7 +75,7 @@ public class LocatorModelPeerNodeQueryService extends AbstractLocatorModelServic @Override public void doneQueryServices(Throwable error) { if (error == null) { - services.set(node.getStringProperty(IPeerModelProperties.PROP_LOCAL_SERVICES)); + services.set(node.getStringProperty(IPeerNodeProperties.PROP_LOCAL_SERVICES)); } completed.set(true); } @@ -104,10 +104,10 @@ public class LocatorModelPeerNodeQueryService extends AbstractLocatorModelServic } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService#queryRemoteServices(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService#queryRemoteServices(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode) */ @Override - public String queryRemoteServices(final IPeerModel node) { + public String queryRemoteServices(final IPeerNode node) { Assert.isTrue(!Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ Assert.isNotNull(node); @@ -116,7 +116,7 @@ public class LocatorModelPeerNodeQueryService extends AbstractLocatorModelServic Protocol.invokeAndWait(new Runnable() { @Override public void run() { - services.set(node.getStringProperty(IPeerModelProperties.PROP_REMOTE_SERVICES)); + services.set(node.getStringProperty(IPeerNodeProperties.PROP_REMOTE_SERVICES)); } }); @@ -135,7 +135,7 @@ public class LocatorModelPeerNodeQueryService extends AbstractLocatorModelServic @Override public void doneQueryServices(Throwable error) { if (error == null) { - services.set(node.getStringProperty(IPeerModelProperties.PROP_REMOTE_SERVICES)); + services.set(node.getStringProperty(IPeerNodeProperties.PROP_REMOTE_SERVICES)); } completed.set(true); } @@ -163,13 +163,13 @@ public class LocatorModelPeerNodeQueryService extends AbstractLocatorModelServic return services.get(); } - /* default */ final Map<IPeerModel, List<DoneQueryServices>> serviceQueriesInProgress = new HashMap<IPeerModel, List<DoneQueryServices>>(); + /* default */ final Map<IPeerNode, List<DoneQueryServices>> serviceQueriesInProgress = new HashMap<IPeerNode, List<DoneQueryServices>>(); /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService#queryServicesAsync(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel, org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService.DoneQueryServices) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService#queryServicesAsync(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode, org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService.DoneQueryServices) */ @Override - public void queryServicesAsync(final IPeerModel node, final DoneQueryServices done) { + public void queryServicesAsync(final IPeerNode node, final DoneQueryServices done) { Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ Assert.isNotNull(node); Assert.isNotNull(done); @@ -204,8 +204,8 @@ public class LocatorModelPeerNodeQueryService extends AbstractLocatorModelServic }; // Do not try to open a channel to peers known to be unreachable - int state = node.getIntProperty(IPeerModelProperties.PROP_STATE); - if (state == IPeerModelProperties.STATE_ERROR || state == IPeerModelProperties.STATE_NOT_REACHABLE || !node.isComplete()) { + int state = node.getIntProperty(IPeerNodeProperties.PROP_STATE); + if (state == IPeerNodeProperties.STATE_ERROR || state == IPeerNodeProperties.STATE_NOT_REACHABLE || !node.isComplete()) { innerDone.doneQueryServices(null); return; } @@ -234,7 +234,7 @@ public class LocatorModelPeerNodeQueryService extends AbstractLocatorModelServic Collections.sort(remoteServices); // Update the services - ILocatorModelUpdateService updateService = node.getModel().getService(ILocatorModelUpdateService.class); + IPeerModelUpdateService updateService = node.getModel().getService(IPeerModelUpdateService.class); updateService.updatePeerServices(node, localServices, remoteServices); // Invoke the callback diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/LocatorModelRefreshService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelRefreshService.java index 2894548ce..ba31a6891 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/LocatorModelRefreshService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelRefreshService.java @@ -44,31 +44,29 @@ import org.eclipse.tcf.te.tcf.core.interfaces.IChannelManager; import org.eclipse.tcf.te.tcf.core.peers.Peer; import org.eclipse.tcf.te.tcf.locator.ScannerRunnable; import org.eclipse.tcf.te.tcf.locator.activator.CoreBundleActivator; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.tcf.locator.interfaces.preferences.IPreferenceKeys; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService; import org.eclipse.tcf.te.tcf.locator.model.ModelLocationUtil; -import org.eclipse.tcf.te.tcf.locator.nodes.ConnectablePeerModel; -import org.eclipse.tcf.te.tcf.locator.nodes.LocatorModel; -import org.eclipse.tcf.te.tcf.locator.nodes.PeerModel; +import org.eclipse.tcf.te.tcf.locator.nodes.PeerNode; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; /** * Default locator model refresh service implementation. */ -public class LocatorModelRefreshService extends AbstractLocatorModelService implements ILocatorModelRefreshService { +public class PeerModelRefreshService extends AbstractPeerModelService implements IPeerModelRefreshService { /** * Constructor. * * @param parentModel The parent locator model instance. Must not be <code>null</code>. */ - public LocatorModelRefreshService(ILocatorModel parentModel) { + public PeerModelRefreshService(IPeerModel parentModel) { super(parentModel); } @@ -84,21 +82,21 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl Protocol.invokeLater(new Runnable() { @Override public void run() { - callback.done(LocatorModelRefreshService.this, Status.OK_STATUS); + callback.done(PeerModelRefreshService.this, Status.OK_STATUS); } }); } } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService#refresh(org.eclipse.tcf.te.runtime.interfaces.callback.ICallback) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService#refresh(org.eclipse.tcf.te.runtime.interfaces.callback.ICallback) */ @Override public void refresh(final ICallback callback) { Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ // Get the parent locator model - ILocatorModel model = getLocatorModel(); + IPeerModel model = getPeerModel(); // If the parent model is already disposed, the service will drop out immediately if (model.isDisposed()) { @@ -113,27 +111,27 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl } // Get the list of old children (update node instances where possible) - final List<IPeerModel> oldChildren = new ArrayList<IPeerModel>(Arrays.asList(model.getPeers())); + final List<IPeerNode> oldChildren = new ArrayList<IPeerNode>(Arrays.asList(model.getPeers())); // Refresh the static peer definitions refreshStaticPeers(oldChildren, model); - // Get the locator service - ILocator locatorService = Protocol.getLocator(); - if (locatorService != null) { - // Check for the locator listener to be created and registered - if (model instanceof LocatorModel) { - ((LocatorModel)model).checkLocatorListener(); - } - // Get the map of peers known to the locator service. - Map<String, IPeer> peers = locatorService.getPeers(); - // Process the peers - processPeers(peers, oldChildren, model); - } +// // Get the locator service +// ILocator locatorService = Protocol.getLocator(); +// if (locatorService != null) { +// // Check for the locator listener to be created and registered +// if (model instanceof PeerModel) { +// ((PeerModel)model).checkLocatorListener(); +// } +// // Get the map of peers known to the locator service. +// Map<String, IPeer> peers = locatorService.getPeers(); +// // Process the peers +// processPeers(peers, oldChildren, model); +// } // If there are remaining old children, remove them from the model (non-recursive) - for (IPeerModel oldChild : oldChildren) { - model.getService(ILocatorModelUpdateService.class).remove(oldChild); + for (IPeerNode oldChild : oldChildren) { + model.getService(IPeerModelUpdateService.class).remove(oldChild); } // Invoke the callback @@ -147,7 +145,7 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl * @param oldChildren The list of old children. Must not be <code>null</code>. * @param model The locator model. Must not be <code>null</code>. */ - protected void processPeers(Map<String, IPeer> peers, List<IPeerModel> oldChildren, ILocatorModel model) { + protected void processPeers(Map<String, IPeer> peers, List<IPeerNode> oldChildren, IPeerModel model) { Assert.isNotNull(peers); Assert.isNotNull(oldChildren); Assert.isNotNull(model); @@ -156,35 +154,25 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl // Get the peer instance for the current peer id IPeer peer = entry.getValue(); // Try to find an existing peer node first - IPeerModel peerNode = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(entry.getKey()); + IPeerNode peerNode = model.getService(IPeerModelLookupService.class).lkupPeerModelById(entry.getKey()); // And create a new one if we cannot find it if (peerNode == null) { - String value = peer.getAttributes().get("static.transient"); //$NON-NLS-1$ - if (value != null && Boolean.parseBoolean(value.trim())) { - peerNode = new ConnectablePeerModel(model, peer); - } - else { - peerNode = new PeerModel(model, peer); - } + peerNode = new PeerNode(model, peer); } else { oldChildren.remove(peerNode); } if (peerNode.getPeer() != peer) { - if (!peerNode.isStatic()) { - peerNode.setProperty(IPeerModelProperties.PROP_INSTANCE, peer); - } else { String value = peerNode.getPeer().getAttributes().get(IPersistableNodeProperties.PROPERTY_URI); URI uri = value != null ? URI.create(value) : null; File file = uri != null && "file".equals(uri.getScheme()) ? new File(uri.normalize()) : null; //$NON-NLS-1$ if (file != null && !file.exists()) { - peerNode.setProperty(IPeerModelProperties.PROP_INSTANCE, peer); + peerNode.setProperty(IPeerNodeProperties.PROP_INSTANCE, peer); } else { // Merge user configured properties between the peers - model.getService(ILocatorModelUpdateService.class).mergeUserDefinedAttributes(peerNode, peer, false); + model.getService(IPeerModelUpdateService.class).mergeUserDefinedAttributes(peerNode, peer, false); } - } } // Validate the peer node before adding @@ -193,15 +181,14 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl // There is still the chance that the node we add is a static node and // there exist an dynamically discovered node with a different id but // for the same peer. Do this check only if the peer to add is a static one. - if (peerNode.isStatic()) { - IPeerModel toRemove = null; - for (IPeerModel candidate : model.getPeers()) { - if (candidate.isStatic() || candidate.equals(peerNode))continue; + IPeerNode toRemove = null; + for (IPeerNode candidate : model.getPeers()) { + if (candidate.equals(peerNode))continue; String peerID = peerNode.getPeerId(); String clientID = candidate.getPeer().getAttributes().get("ClientID"); //$NON-NLS-1$ if (clientID != null && clientID.equals(peerID)) { // Merge user configured properties between the peers - model.getService(ILocatorModelUpdateService.class).mergeUserDefinedAttributes(candidate, peerNode.getPeer(), true); + model.getService(IPeerModelUpdateService.class).mergeUserDefinedAttributes(candidate, peerNode.getPeer(), true); peerNode = null; break; } @@ -215,13 +202,13 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl // Same pipe -> same node if (name1 != null && name1.equals(name2)) { // Merge user configured properties between the peers - model.getService(ILocatorModelUpdateService.class).mergeUserDefinedAttributes(peerNode, candidate.getPeer(), true); + model.getService(IPeerModelUpdateService.class).mergeUserDefinedAttributes(peerNode, candidate.getPeer(), true); toRemove = candidate; break; } } else if ("Loop".equals(candidate.getPeer().getTransportName())) { //$NON-NLS-1$ // Merge user configured properties between the peers - model.getService(ILocatorModelUpdateService.class).mergeUserDefinedAttributes(peerNode, candidate.getPeer(), true); + model.getService(IPeerModelUpdateService.class).mergeUserDefinedAttributes(peerNode, candidate.getPeer(), true); toRemove = candidate; break; } else { @@ -235,7 +222,7 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl if (port1 != null && port1.equals(port2)) { // Merge user configured properties between the peers - model.getService(ILocatorModelUpdateService.class).mergeUserDefinedAttributes(peerNode, candidate.getPeer(), true); + model.getService(IPeerModelUpdateService.class).mergeUserDefinedAttributes(peerNode, candidate.getPeer(), true); toRemove = candidate; break; } @@ -245,14 +232,13 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl } if (toRemove != null) { - model.getService(ILocatorModelUpdateService.class).remove(toRemove); + model.getService(IPeerModelUpdateService.class).remove(toRemove); toRemove = null; } - } if (peerNode != null) { // Add the peer node to model - model.getService(ILocatorModelUpdateService.class).add(peerNode); + model.getService(IPeerModelUpdateService.class).add(peerNode); // And schedule for immediate status update Runnable runnable = new ScannerRunnable(model.getScanner(), peerNode); Protocol.invokeLater(runnable); @@ -264,7 +250,7 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl private final AtomicBoolean REFRESH_STATIC_PEERS_GUARD = new AtomicBoolean(false); /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService#refreshStaticPeers() + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService#refreshStaticPeers() */ @Override public void refreshStaticPeers() { @@ -278,7 +264,7 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl REFRESH_STATIC_PEERS_GUARD.set(true); // Get the parent locator model - ILocatorModel model = getLocatorModel(); + IPeerModel model = getPeerModel(); // If the parent model is already disposed, the service will drop out immediately if (model.isDisposed()) { @@ -286,7 +272,7 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl } // Get the list of old children (update node instances where possible) - final List<IPeerModel> oldChildren = new ArrayList<IPeerModel>(Arrays.asList(model.getPeers())); + final List<IPeerNode> oldChildren = new ArrayList<IPeerNode>(Arrays.asList(model.getPeers())); // Refresh the static peer definitions refreshStaticPeers(oldChildren, model); @@ -300,7 +286,7 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl * @param oldChildren The list of old children. Must not be <code>null</code>. * @param model The locator model. Must not be <code>null</code>. */ - protected void refreshStaticPeers(List<IPeerModel> oldChildren, ILocatorModel model) { + protected void refreshStaticPeers(List<IPeerNode> oldChildren, IPeerModel model) { Assert.isNotNull(oldChildren); Assert.isNotNull(model); @@ -367,19 +353,19 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl } // If the redirect property is not set, create the peer right away - if (attrs.get(IPeerModelProperties.PROP_REDIRECT_PROXY) == null) { + if (attrs.get(IPeerNodeProperties.PROP_REDIRECT_PROXY) == null) { // Construct the peer from the attributes IPeer peer = new Peer(attrs); // Add the constructed peer to the peers map peers.put(peer.getID(), peer); } else { // Try to get the peer proxy - String proxyId = attrs.get(IPeerModelProperties.PROP_REDIRECT_PROXY); + String proxyId = attrs.get(IPeerNodeProperties.PROP_REDIRECT_PROXY); IPeer proxy = peers.get(proxyId); if (proxy == null) { - IPeerModel peerModel = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(proxyId); - if (peerModel != null) { - proxy = peerModel.getPeer(); + IPeerNode peerNode = model.getService(IPeerModelLookupService.class).lkupPeerModelById(proxyId); + if (peerNode != null) { + proxy = peerNode.getPeer(); } } @@ -403,12 +389,12 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl // Process postponed peers if there are any if (!postponed.isEmpty()) { for (Map<String, String> attrs : postponed) { - String proxyId = attrs.get(IPeerModelProperties.PROP_REDIRECT_PROXY); + String proxyId = attrs.get(IPeerNodeProperties.PROP_REDIRECT_PROXY); IPeer proxy = proxyId != null ? peers.get(proxyId) : null; if (proxy == null) { - IPeerModel peerModel = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(proxyId); - if (peerModel != null) { - proxy = peerModel.getPeer(); + IPeerNode peerNode = model.getService(IPeerModelLookupService.class).lkupPeerModelById(proxyId); + if (peerNode != null) { + proxy = peerNode.getPeer(); } } @@ -419,7 +405,7 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl peers.put(redirector.getID(), redirector); } else { // Proxy not available -> reset redirection - attrs.remove(IPeerModelProperties.PROP_REDIRECT_PROXY); + attrs.remove(IPeerNodeProperties.PROP_REDIRECT_PROXY); // Construct the peer from the attributes IPeer peer = new Peer(attrs); // Add the constructed peer to the peers map @@ -441,16 +427,16 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl } // Get the peers peer model object - IPeerModel peerModel = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(entry.getKey()); - Assert.isNotNull(peerModel); + IPeerNode peerNode = model.getService(IPeerModelLookupService.class).lkupPeerModelById(entry.getKey()); + Assert.isNotNull(peerNode); // The peer is a peer redirector -> get the proxy peer id and proxy peer model String proxyPeerId = ((PeerRedirector)peer).getParent().getID(); - IPeerModel proxy = model.getService(ILocatorModelLookupService.class).lkupPeerModelById(proxyPeerId); + IPeerNode proxy = model.getService(IPeerModelLookupService.class).lkupPeerModelById(proxyPeerId); Assert.isNotNull(proxy); - peerModel.setParent(proxy); - model.getService(ILocatorModelUpdateService.class).addChild(peerModel); + peerNode.setParent(proxy); + model.getService(IPeerModelUpdateService.class).addChild(peerNode); } } } @@ -493,10 +479,10 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl /* default */ final List<ICallback> refreshAgentIDCallbacks = new ArrayList<ICallback>(); /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService#refreshAgentIDs(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel[], org.eclipse.tcf.te.runtime.interfaces.callback.ICallback) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService#refreshAgentIDs(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode[], org.eclipse.tcf.te.runtime.interfaces.callback.ICallback) */ @Override - public void refreshAgentIDs(IPeerModel[] nodes, final ICallback callback) { + public void refreshAgentIDs(IPeerNode[] nodes, final ICallback callback) { Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ // This method might be called reentrant while processing. Add @@ -508,7 +494,7 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl refreshAgentIDCallbacks.add(callback); // Get the parent locator model - ILocatorModel model = getLocatorModel(); + IPeerModel model = getPeerModel(); // If the parent model is already disposed, the service will drop out immediately if (model.isDisposed()) { @@ -530,11 +516,11 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl }, new CallbackInvocationDelegate()); // Make a copy of the current list of static peers before processing - List<IPeerModel> nodesToProcess = new ArrayList<IPeerModel>(Arrays.asList(nodes != null ? nodes : model.getPeers())); + List<IPeerNode> nodesToProcess = new ArrayList<IPeerNode>(Arrays.asList(nodes != null ? nodes : model.getPeers())); // Loop the list of static peers and try to get the agent ID - for (IPeerModel node : nodesToProcess) { + for (IPeerNode node : nodesToProcess) { // If not static or not complete --> ignore - if (!node.isStatic() || !node.isComplete()) continue; + if (!node.isComplete()) continue; // Refresh the agent ID refreshAgentID(node, new AsyncCallbackCollector.SimpleCollectorCallback(collector)); } @@ -549,18 +535,11 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl * @param node The peer model node. Must not be <code>null</code>. * @param callback The callback. Must not be <code>null</code>. */ - protected void refreshAgentID(final IPeerModel node, final ICallback callback) { + protected void refreshAgentID(final IPeerNode node, final ICallback callback) { Assert.isNotNull(node); Assert.isNotNull(callback); - // If the peer is not static or associated with an remote peer - // --> skip the node - if (!node.isStatic() || node.isRemote()) { - callback.done(LocatorModelRefreshService.this, Status.OK_STATUS); - return; - } - - Assert.isTrue(node.getPeer() instanceof Peer); + if (!(node.getPeer() instanceof Peer)) return; // Try to open a channel to the node Map<String, Boolean> flags = new HashMap<String, Boolean>(); @@ -588,30 +567,30 @@ public class LocatorModelRefreshService extends AbstractLocatorModelService impl // Remove the old agent ID Map<String, String> attrs = new HashMap<String, String>(channel.getRemotePeer().getAttributes()); attrs.remove(IPeer.ATTR_AGENT_ID); - node.setProperty(IPeerModelProperties.PROP_INSTANCE, new Peer(attrs)); + node.setProperty(IPeerNodeProperties.PROP_INSTANCE, new Peer(attrs)); } } else if (node.getPeer().getAgentID() == null || !agentID.equals(node.getPeer().getAgentID())){ // Set the new agent ID Map<String, String> attrs = new HashMap<String, String>(channel.getRemotePeer().getAttributes()); attrs.put(IPeer.ATTR_AGENT_ID, agentID); - node.setProperty(IPeerModelProperties.PROP_INSTANCE, new Peer(attrs)); + node.setProperty(IPeerNodeProperties.PROP_INSTANCE, new Peer(attrs)); } // Invoke the callback - callback.done(LocatorModelRefreshService.this, Status.OK_STATUS); + callback.done(PeerModelRefreshService.this, Status.OK_STATUS); } }); } else { // Close the channel Tcf.getChannelManager().closeChannel(channel); // Invoke the callback - callback.done(LocatorModelRefreshService.this, Status.OK_STATUS); + callback.done(PeerModelRefreshService.this, Status.OK_STATUS); } } else { // Close the channel in any case if (channel != null) Tcf.getChannelManager().closeChannel(channel); // Invoke the callback - callback.done(LocatorModelRefreshService.this, Status.OK_STATUS); + callback.done(PeerModelRefreshService.this, Status.OK_STATUS); } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/LocatorModelUpdateService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelUpdateService.java index f55587249..0f4684ca4 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/LocatorModelUpdateService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelUpdateService.java @@ -21,24 +21,24 @@ import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableNodeProperties; import org.eclipse.tcf.te.tcf.core.peers.Peer; import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; /** * Default locator model update service implementation. */ -public class LocatorModelUpdateService extends AbstractLocatorModelService implements ILocatorModelUpdateService { +public class PeerModelUpdateService extends AbstractPeerModelService implements IPeerModelUpdateService { /** * Constructor. * * @param parentModel The parent locator model instance. Must not be <code>null</code>. */ - public LocatorModelUpdateService(ILocatorModel parentModel) { + public PeerModelUpdateService(IPeerModel parentModel) { super(parentModel); } @@ -46,21 +46,21 @@ public class LocatorModelUpdateService extends AbstractLocatorModelService imple * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.services.ILocatorModelUpdateService#add(org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.IPeerModel) */ @Override - public void add(final IPeerModel peer) { + public void add(final IPeerNode peer) { Assert.isNotNull(peer); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - Map<String, IPeerModel> peers = (Map<String, IPeerModel>)getLocatorModel().getAdapter(Map.class); + Map<String, IPeerNode> peers = (Map<String, IPeerNode>)getPeerModel().getAdapter(Map.class); Assert.isNotNull(peers); peers.put(peer.getPeerId(), peer); - final IModelListener[] listeners = getLocatorModel().getListener(); + final IModelListener[] listeners = getPeerModel().getListener(); if (listeners.length > 0) { Protocol.invokeLater(new Runnable() { @Override public void run() { for (IModelListener listener : listeners) { - listener.locatorModelChanged(getLocatorModel(), peer, true); + listener.locatorModelChanged(getPeerModel(), peer, true); } } }); @@ -71,23 +71,23 @@ public class LocatorModelUpdateService extends AbstractLocatorModelService imple * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.services.ILocatorModelUpdateService#remove(org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.IPeerModel) */ @Override - public void remove(final IPeerModel peer) { + public void remove(final IPeerNode peer) { Assert.isNotNull(peer); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - Map<String, IPeerModel> peers = (Map<String, IPeerModel>)getLocatorModel().getAdapter(Map.class); + Map<String, IPeerNode> peers = (Map<String, IPeerNode>)getPeerModel().getAdapter(Map.class); Assert.isNotNull(peers); peers.remove(peer.getPeerId()); - getLocatorModel().setChildren(peer.getPeerId(), null); + getPeerModel().setChildren(peer.getPeerId(), null); - final IModelListener[] listeners = getLocatorModel().getListener(); + final IModelListener[] listeners = getPeerModel().getListener(); if (listeners.length > 0) { Protocol.invokeLater(new Runnable() { @Override public void run() { for (IModelListener listener : listeners) { - listener.locatorModelChanged(getLocatorModel(), peer, false); + listener.locatorModelChanged(getPeerModel(), peer, false); } } }); @@ -98,12 +98,12 @@ public class LocatorModelUpdateService extends AbstractLocatorModelService imple * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.services.ILocatorModelUpdateService#updatePeerServices(org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.IPeerModel, java.util.Collection, java.util.Collection) */ @Override - public void updatePeerServices(IPeerModel peerNode, Collection<String> localServices, Collection<String> remoteServices) { + public void updatePeerServices(IPeerNode peerNode, Collection<String> localServices, Collection<String> remoteServices) { Assert.isNotNull(peerNode); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - peerNode.setProperty(IPeerModelProperties.PROP_LOCAL_SERVICES, localServices != null ? makeString(localServices) : null); - peerNode.setProperty(IPeerModelProperties.PROP_REMOTE_SERVICES, remoteServices != null ? makeString(remoteServices) : null); + peerNode.setProperty(IPeerNodeProperties.PROP_LOCAL_SERVICES, localServices != null ? makeString(localServices) : null); + peerNode.setProperty(IPeerNodeProperties.PROP_REMOTE_SERVICES, remoteServices != null ? makeString(remoteServices) : null); } /** @@ -124,15 +124,15 @@ public class LocatorModelUpdateService extends AbstractLocatorModelService imple } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService#addChild(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService#addChild(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode) */ @Override - public void addChild(final IPeerModel child) { + public void addChild(final IPeerNode child) { Assert.isNotNull(child); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ // Determine the parent node - final IPeerModel parent = child.getParent(IPeerModel.class); + final IPeerNode parent = child.getParent(IPeerNode.class); if (parent == null) return; // Determine the peer id of the parent @@ -140,10 +140,10 @@ public class LocatorModelUpdateService extends AbstractLocatorModelService imple Assert.isNotNull(parentPeerId); // Get the list of existing children - List<IPeerModel> children = new ArrayList<IPeerModel>(getLocatorModel().getChildren(parentPeerId)); + List<IPeerNode> children = new ArrayList<IPeerNode>(getPeerModel().getChildren(parentPeerId)); if (!children.contains(child)) { children.add(child); - getLocatorModel().setChildren(parentPeerId, children); + getPeerModel().setChildren(parentPeerId, children); } // Notify listeners @@ -151,15 +151,15 @@ public class LocatorModelUpdateService extends AbstractLocatorModelService imple } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService#removeChild(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService#removeChild(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode) */ @Override - public void removeChild(final IPeerModel child) { + public void removeChild(final IPeerNode child) { Assert.isNotNull(child); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ // Determine the parent node - final IPeerModel parent = child.getParent(IPeerModel.class); + final IPeerNode parent = child.getParent(IPeerNode.class); if (parent == null) return; // Determine the peer id of the parent @@ -167,10 +167,10 @@ public class LocatorModelUpdateService extends AbstractLocatorModelService imple Assert.isNotNull(parentPeerId); // Get the list of existing children - List<IPeerModel> children = new ArrayList<IPeerModel>(getLocatorModel().getChildren(parentPeerId)); + List<IPeerNode> children = new ArrayList<IPeerNode>(getPeerModel().getChildren(parentPeerId)); if (children.contains(child)) { children.remove(child); - getLocatorModel().setChildren(parentPeerId, children); + getPeerModel().setChildren(parentPeerId, children); } // Notify listeners @@ -178,10 +178,10 @@ public class LocatorModelUpdateService extends AbstractLocatorModelService imple } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService#mergeUserDefinedAttributes(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel, org.eclipse.tcf.protocol.IPeer, boolean) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService#mergeUserDefinedAttributes(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode, org.eclipse.tcf.protocol.IPeer, boolean) */ @Override - public void mergeUserDefinedAttributes(IPeerModel node, IPeer peer, boolean force) { + public void mergeUserDefinedAttributes(IPeerNode node, IPeer peer, boolean force) { Assert.isNotNull(node); Assert.isNotNull(peer); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/StepperOperationService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/StepperOperationService.java index 70fabdaaf..f1ff8984e 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/StepperOperationService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/StepperOperationService.java @@ -12,7 +12,7 @@ package org.eclipse.tcf.te.tcf.locator.services; import org.eclipse.core.runtime.Assert; import org.eclipse.tcf.te.core.interfaces.IConnectable; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.interfaces.services.IStepperServiceOperations; /** @@ -40,7 +40,7 @@ public class StepperOperationService extends org.eclipse.tcf.te.runtime.stepper. */ @Override public String getStepGroupId(Object context, String operation) { - Assert.isTrue(context instanceof IPeerModel); + Assert.isTrue(context instanceof IPeerNode); if (IStepperServiceOperations.CONNECT.equals(operation)) { return "org.eclipse.tcf.te.tcf.locator.connectStepGroup"; //$NON-NLS-1$ @@ -57,13 +57,13 @@ public class StepperOperationService extends org.eclipse.tcf.te.runtime.stepper. */ @Override public String getStepGroupName(Object context, String operation) { - Assert.isTrue(context instanceof IPeerModel); + Assert.isTrue(context instanceof IPeerNode); if (IStepperServiceOperations.CONNECT.equals(operation)) { - return "Connect "+((IPeerModel)context).getName(); //$NON-NLS-1$ + return "Connect "+((IPeerNode)context).getName(); //$NON-NLS-1$ } if (IStepperServiceOperations.DISCONNECT.equals(operation)) { - return "Disconnect "+((IPeerModel)context).getName(); //$NON-NLS-1$ + return "Disconnect "+((IPeerNode)context).getName(); //$NON-NLS-1$ } return null; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/selection/RuntimeServiceContextFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/selection/RuntimeServiceContextFilter.java index e23d2f3d6..9cf2ffa15 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/selection/RuntimeServiceContextFilter.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/selection/RuntimeServiceContextFilter.java @@ -17,8 +17,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.core.runtime.Assert; import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService; /** @@ -51,19 +51,19 @@ public class RuntimeServiceContextFilter implements IDefaultContextService.ICont } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService.IContextFilter#select(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService.IContextFilter#select(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode) */ @Override - public boolean select(final IPeerModel peerModel) { - Assert.isNotNull(peerModel); + public boolean select(final IPeerNode peerNode) { + Assert.isNotNull(peerNode); - final IPeer peer = peerModel.getPeer(); + final IPeer peer = peerNode.getPeer(); final AtomicBoolean result = new AtomicBoolean(false); Protocol.invokeAndWait(new Runnable() { @Override public void run() { List<String> list; - String services = peerModel.getStringProperty(IPeerModelProperties.PROP_REMOTE_SERVICES); + String services = peerNode.getStringProperty(IPeerNodeProperties.PROP_REMOTE_SERVICES); if (services != null) { list = Arrays.asList(services.split(",\\s*")); //$NON-NLS-1$ boolean containsAll = true; @@ -78,7 +78,7 @@ public class RuntimeServiceContextFilter implements IDefaultContextService.ICont } if (useDisconnectedContexts) { - services = peer.getAttributes().get(IPeerModelProperties.PROP_OFFLINE_SERVICES); + services = peer.getAttributes().get(IPeerNodeProperties.PROP_OFFLINE_SERVICES); list = services != null ? Arrays.asList(services.split(",\\s*")) : Collections.EMPTY_LIST; //$NON-NLS-1$ boolean containsAll = true; for (String serviceName : serviceNames) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/AbstractPeerModelStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/AbstractPeerNodeStep.java index 3effd5fbf..98fdd69c4 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/AbstractPeerModelStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/AbstractPeerNodeStep.java @@ -1,45 +1,45 @@ -/*******************************************************************************
- * Copyright (c) 2013 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.locator.steps;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext;
-import org.eclipse.tcf.te.tcf.core.steps.AbstractPeerStep;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-
-/**
- * Abstract peer model context step
- */
-public abstract class AbstractPeerModelStep extends AbstractPeerStep {
-
- /**
- * Returns the active peer model context that is currently used.
- *
- * @param context The step context. Must not be <code>null</code>.
- * @param data The data giving object. Must not be <code>null</code>.
- * @param fullQualifiedId The full qualfied id for this step. Must not be <code>null</code>.
- * @return The active peer model context.
- */
- protected IPeerModel getActivePeerModelContext(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId) {
- Object activeContext = getActiveContext(context, data, fullQualifiedId);
- IPeerModel peerModel = null;
- if (activeContext instanceof IPeerModel)
- return (IPeerModel)activeContext;
- if (activeContext instanceof IAdaptable)
- peerModel = (IPeerModel)((IAdaptable)activeContext).getAdapter(IPeerModel.class);
- if (peerModel == null)
- peerModel = (IPeerModel)Platform.getAdapterManager().getAdapter(activeContext, IPeerModel.class);
-
- return peerModel;
- }
-}
+/******************************************************************************* + * Copyright (c) 2013 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.locator.steps; + +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.Platform; +import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; +import org.eclipse.tcf.te.tcf.core.steps.AbstractPeerStep; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; + +/** + * Abstract peer model context step + */ +public abstract class AbstractPeerNodeStep extends AbstractPeerStep { + + /** + * Returns the active peer model context that is currently used. + * + * @param context The step context. Must not be <code>null</code>. + * @param data The data giving object. Must not be <code>null</code>. + * @param fullQualifiedId The full qualfied id for this step. Must not be <code>null</code>. + * @return The active peer model context. + */ + protected IPeerNode getActivePeerModelContext(IStepContext context, IPropertiesContainer data, IFullQualifiedId fullQualifiedId) { + Object activeContext = getActiveContext(context, data, fullQualifiedId); + IPeerNode peerNode = null; + if (activeContext instanceof IPeerNode) + return (IPeerNode)activeContext; + if (activeContext instanceof IAdaptable) + peerNode = (IPeerNode)((IAdaptable)activeContext).getAdapter(IPeerNode.class); + if (peerNode == null) + peerNode = (IPeerNode)Platform.getAdapterManager().getAdapter(activeContext, IPeerNode.class); + + return peerNode; + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/CheckServiceStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/CheckServiceStep.java index 69b562ec4..2af3fb0ab 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/CheckServiceStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/CheckServiceStep.java @@ -27,12 +27,12 @@ import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; import org.eclipse.tcf.te.tcf.core.interfaces.steps.ITcfStepAttributes; import org.eclipse.tcf.te.tcf.locator.activator.CoreBundleActivator; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; /** * Check service step implementation. */ -public class CheckServiceStep extends AbstractPeerModelStep { +public class CheckServiceStep extends AbstractPeerNodeStep { public static final String PARAMETER_REMOTE_SERVICE = "remoteService"; //$NON-NLS-1$ public static final String PARAMETER_LOCAL_SERVICE = "localService"; //$NON-NLS-1$ @@ -88,7 +88,7 @@ public class CheckServiceStep extends AbstractPeerModelStep { } String offlineService = getParameters().get(PARAMETER_OFFLINE_SERVICE); - String services = getActivePeerContext(context, data, fullQualifiedId).getAttributes().get(IPeerModelProperties.PROP_OFFLINE_SERVICES); + String services = getActivePeerContext(context, data, fullQualifiedId).getAttributes().get(IPeerNodeProperties.PROP_OFFLINE_SERVICES); List<String> list = services != null ? Arrays.asList(services.split(",\\s*")) : Collections.EMPTY_LIST; //$NON-NLS-1$ if (offlineService != null && !list.contains(offlineService)) { throw new CoreException(new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(), "missing offline service '" + offlineService + "'")); //$NON-NLS-1$ //$NON-NLS-2$ diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SetAsDefaultContextStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SetAsDefaultContextStep.java index 023622795..df40c6157 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SetAsDefaultContextStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SetAsDefaultContextStep.java @@ -23,7 +23,7 @@ import org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService /** * Set the active context as default context. */ -public class SetAsDefaultContextStep extends AbstractPeerModelStep { +public class SetAsDefaultContextStep extends AbstractPeerNodeStep { /** * Constructor. diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SetWaitForReadyStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SetWaitForReadyStep.java index 386d936ea..369a2b4e1 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SetWaitForReadyStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SetWaitForReadyStep.java @@ -19,12 +19,12 @@ import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; /** * Set the waiting_for_ready state. */ -public class SetWaitForReadyStep extends AbstractPeerModelStep { +public class SetWaitForReadyStep extends AbstractPeerNodeStep { /** * Constructor. @@ -47,9 +47,9 @@ public class SetWaitForReadyStep extends AbstractPeerModelStep { Protocol.invokeAndWait(new Runnable() { @Override public void run() { - int state = getActivePeerModelContext(context, data, fullQualifiedId).getIntProperty(IPeerModelProperties.PROP_STATE); - if (state == IPeerModelProperties.STATE_UNKNOWN || state == IPeerModelProperties.STATE_NOT_REACHABLE || state == IPeerModelProperties.STATE_ERROR) { - getActivePeerModelContext(context, data, fullQualifiedId).setProperty(IPeerModelProperties.PROP_STATE, IPeerModelProperties.STATE_WAITING_FOR_READY); + int state = getActivePeerModelContext(context, data, fullQualifiedId).getIntProperty(IPeerNodeProperties.PROP_STATE); + if (state == IPeerNodeProperties.STATE_UNKNOWN || state == IPeerNodeProperties.STATE_NOT_REACHABLE || state == IPeerNodeProperties.STATE_ERROR) { + getActivePeerModelContext(context, data, fullQualifiedId).setProperty(IPeerNodeProperties.PROP_STATE, IPeerNodeProperties.STATE_WAITING_FOR_READY); } } }); @@ -72,7 +72,7 @@ public class SetWaitForReadyStep extends AbstractPeerModelStep { Protocol.invokeAndWait(new Runnable() { @Override public void run() { - getActivePeerModelContext(context, data, fullQualifiedId).setProperty(IPeerModelProperties.PROP_STATE, IPeerModelProperties.STATE_NOT_REACHABLE); + getActivePeerModelContext(context, data, fullQualifiedId).setProperty(IPeerNodeProperties.PROP_STATE, IPeerNodeProperties.STATE_NOT_REACHABLE); } }); super.rollback(context, data, status, fullQualifiedId, monitor, callback); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SignalPeerDisconnectedStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SignalPeerDisconnectedStep.java index cbf2a034e..f29164fca 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SignalPeerDisconnectedStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/SignalPeerDisconnectedStep.java @@ -19,14 +19,14 @@ import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.model.Model; /** * Signal peer disconnected step. */ -public class SignalPeerDisconnectedStep extends AbstractPeerModelStep { +public class SignalPeerDisconnectedStep extends AbstractPeerNodeStep { /* (non-Javadoc) * @see org.eclipse.tcf.te.runtime.stepper.interfaces.IStep#validateExecute(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor) @@ -46,14 +46,14 @@ public class SignalPeerDisconnectedStep extends AbstractPeerModelStep { Assert.isNotNull(monitor); Assert.isNotNull(callback); - final IPeerModel peerModel = getActivePeerModelContext(context, data, fullQualifiedId); - if (peerModel != null) { + final IPeerNode peerNode = getActivePeerModelContext(context, data, fullQualifiedId); + if (peerNode != null) { Protocol.invokeLater(new Runnable() { @Override public void run() { - ILocatorModel model = Model.getModel(); + IPeerModel model = Model.getModel(); for (IModelListener listener : model.getListener()) { - listener.locatorModelChanged(model, peerModel, false); + listener.locatorModelChanged(model, peerNode, false); } callback.done(SignalPeerDisconnectedStep.this, Status.OK_STATUS); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StartDebuggerStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StartDebuggerStep.java index 73ae17f02..58b66d40c 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StartDebuggerStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StartDebuggerStep.java @@ -30,14 +30,14 @@ import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; import org.eclipse.tcf.te.runtime.utils.StatusHelper; import org.eclipse.tcf.te.tcf.locator.interfaces.IStepAttributes; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService; /** * Start debugger step implementation. */ -public class StartDebuggerStep extends AbstractPeerModelStep { +public class StartDebuggerStep extends AbstractPeerNodeStep { /** * Interface to be implemented by start debugger step delegates. @@ -51,7 +51,7 @@ public class StartDebuggerStep extends AbstractPeerModelStep { * @param monitor The progress monitor. Must not be <code>null</code>. * @param callback The callback to invoke if finished. Must not be <code>null</code>. */ - public void postAttachDebugger(IPeerModel node, IProgressMonitor monitor, ICallback callback); + public void postAttachDebugger(IPeerNode node, IProgressMonitor monitor, ICallback callback); } /** @@ -72,7 +72,7 @@ public class StartDebuggerStep extends AbstractPeerModelStep { */ @Override public void execute(final IStepContext context, final IPropertiesContainer data, final IFullQualifiedId fullQualifiedId, final IProgressMonitor monitor, final ICallback callback) { - final IPeerModel node = getActivePeerModelContext(context, data, fullQualifiedId); + final IPeerNode node = getActivePeerModelContext(context, data, fullQualifiedId); Assert.isNotNull(node); String value = getParameters().get("autoAttachAll"); //$NON-NLS-1$ final boolean autoAttachAll = value != null ? Boolean.parseBoolean(value) : false; @@ -82,14 +82,14 @@ public class StartDebuggerStep extends AbstractPeerModelStep { @Override public void run() { // Don't attach the debugger if no run control is provided by the target - final ILocatorModelPeerNodeQueryService queryService = node.getModel().getService(ILocatorModelPeerNodeQueryService.class); + final IPeerModelQueryService queryService = node.getModel().getService(IPeerModelQueryService.class); Assert.isNotNull(queryService); - queryService.queryServicesAsync(node, new ILocatorModelPeerNodeQueryService.DoneQueryServices() { + queryService.queryServicesAsync(node, new IPeerModelQueryService.DoneQueryServices() { @Override public void doneQueryServices(Throwable error) { if (error == null) { // Get the list of available remote services - String remoteServices = node.getStringProperty(IPeerModelProperties.PROP_REMOTE_SERVICES); + String remoteServices = node.getStringProperty(IPeerNodeProperties.PROP_REMOTE_SERVICES); Assert.isNotNull(remoteServices); boolean canAttachDbg = false; StringTokenizer tokenizer = new StringTokenizer(remoteServices, ","); //$NON-NLS-1$ @@ -157,7 +157,7 @@ public class StartDebuggerStep extends AbstractPeerModelStep { */ @Override public void rollback(IStepContext context, IPropertiesContainer data, IStatus status, IFullQualifiedId fullQualifiedId, IProgressMonitor monitor, ICallback callback) { - final IPeerModel node = getActivePeerModelContext(context, data, fullQualifiedId); + final IPeerNode node = getActivePeerModelContext(context, data, fullQualifiedId); IDebugService dbgService = ServiceManager.getInstance().getService(node, IDebugService.class, false); if (dbgService != null) { IPropertiesContainer props = new PropertiesContainer(); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StartSimulatorStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StartSimulatorStep.java index cde08c7d6..905d0830e 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StartSimulatorStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StartSimulatorStep.java @@ -21,7 +21,7 @@ import org.eclipse.tcf.te.tcf.locator.utils.SimulatorUtils; /** * Start simulator step implementation. */ -public class StartSimulatorStep extends AbstractPeerModelStep { +public class StartSimulatorStep extends AbstractPeerNodeStep { /** * Constructor. diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StopDebuggerStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StopDebuggerStep.java index 3fe928a33..d6ea6557c 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StopDebuggerStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StopDebuggerStep.java @@ -1,55 +1,55 @@ -/*******************************************************************************
- * Copyright (c) 2013 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.locator.steps;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback;
-import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer;
-import org.eclipse.tcf.te.runtime.properties.PropertiesContainer;
-import org.eclipse.tcf.te.runtime.services.ServiceManager;
-import org.eclipse.tcf.te.runtime.services.interfaces.IDebugService;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext;
-
-/**
- * Stop debugger step implementation.
- */
-public class StopDebuggerStep extends AbstractPeerModelStep {
-
- /**
- * Constructor.
- */
- public StopDebuggerStep() {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.stepper.interfaces.IExtendedStep#validateExecute(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor)
- */
- @Override
- public void validateExecute(final IStepContext context, final IPropertiesContainer data, final IFullQualifiedId fullQualifiedId, final IProgressMonitor monitor) throws CoreException {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.stepper.interfaces.IStep#execute(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor, org.eclipse.tcf.te.runtime.interfaces.callback.ICallback)
- */
- @Override
- public void execute(final IStepContext context, final IPropertiesContainer data, final IFullQualifiedId fullQualifiedId, final IProgressMonitor monitor, final ICallback callback) {
- IDebugService dbgService = ServiceManager.getInstance().getService(getActivePeerModelContext(context, data, fullQualifiedId), IDebugService.class, false);
- if (dbgService != null) {
- IPropertiesContainer props = new PropertiesContainer();
- dbgService.detach(getActivePeerModelContext(context, data, fullQualifiedId), props, monitor, callback);
- }
- else {
- callback.done(this, Status.OK_STATUS);
- }
- }
-}
+/******************************************************************************* + * Copyright (c) 2013 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.locator.steps; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.Status; +import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback; +import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; +import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; +import org.eclipse.tcf.te.runtime.services.ServiceManager; +import org.eclipse.tcf.te.runtime.services.interfaces.IDebugService; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; + +/** + * Stop debugger step implementation. + */ +public class StopDebuggerStep extends AbstractPeerNodeStep { + + /** + * Constructor. + */ + public StopDebuggerStep() { + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.stepper.interfaces.IExtendedStep#validateExecute(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor) + */ + @Override + public void validateExecute(final IStepContext context, final IPropertiesContainer data, final IFullQualifiedId fullQualifiedId, final IProgressMonitor monitor) throws CoreException { + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.stepper.interfaces.IStep#execute(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor, org.eclipse.tcf.te.runtime.interfaces.callback.ICallback) + */ + @Override + public void execute(final IStepContext context, final IPropertiesContainer data, final IFullQualifiedId fullQualifiedId, final IProgressMonitor monitor, final ICallback callback) { + IDebugService dbgService = ServiceManager.getInstance().getService(getActivePeerModelContext(context, data, fullQualifiedId), IDebugService.class, false); + if (dbgService != null) { + IPropertiesContainer props = new PropertiesContainer(); + dbgService.detach(getActivePeerModelContext(context, data, fullQualifiedId), props, monitor, callback); + } + else { + callback.done(this, Status.OK_STATUS); + } + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StopSimulatorStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StopSimulatorStep.java index 3edf32507..0f91d460a 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StopSimulatorStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/StopSimulatorStep.java @@ -1,45 +1,45 @@ -/*******************************************************************************
- * Copyright (c) 2013 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.locator.steps;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback;
-import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext;
-import org.eclipse.tcf.te.tcf.locator.utils.SimulatorUtils;
-
-/**
- * Stop simulator step implementation.
- */
-public class StopSimulatorStep extends AbstractPeerModelStep {
-
- /**
- * Constructor.
- */
- public StopSimulatorStep() {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.stepper.interfaces.IExtendedStep#validateExecute(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor)
- */
- @Override
- public void validateExecute(final IStepContext context, final IPropertiesContainer data, final IFullQualifiedId fullQualifiedId, final IProgressMonitor monitor) throws CoreException {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.stepper.interfaces.IStep#execute(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor, org.eclipse.tcf.te.runtime.interfaces.callback.ICallback)
- */
- @Override
- public void execute(final IStepContext context, final IPropertiesContainer data, final IFullQualifiedId fullQualifiedId, final IProgressMonitor monitor, final ICallback callback) {
- SimulatorUtils.stop(getActivePeerModelContext(context, data, fullQualifiedId), monitor, callback);
- }
-}
+/******************************************************************************* + * Copyright (c) 2013 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.locator.steps; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback; +import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; +import org.eclipse.tcf.te.tcf.locator.utils.SimulatorUtils; + +/** + * Stop simulator step implementation. + */ +public class StopSimulatorStep extends AbstractPeerNodeStep { + + /** + * Constructor. + */ + public StopSimulatorStep() { + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.stepper.interfaces.IExtendedStep#validateExecute(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor) + */ + @Override + public void validateExecute(final IStepContext context, final IPropertiesContainer data, final IFullQualifiedId fullQualifiedId, final IProgressMonitor monitor) throws CoreException { + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.stepper.interfaces.IStep#execute(org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext, org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer, org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId, org.eclipse.core.runtime.IProgressMonitor, org.eclipse.tcf.te.runtime.interfaces.callback.ICallback) + */ + @Override + public void execute(final IStepContext context, final IPropertiesContainer data, final IFullQualifiedId fullQualifiedId, final IProgressMonitor monitor, final ICallback callback) { + SimulatorUtils.stop(getActivePeerModelContext(context, data, fullQualifiedId), monitor, callback); + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/WaitForReadyStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/WaitForReadyStep.java index d5e635fe1..f1c79cc7a 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/WaitForReadyStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/steps/WaitForReadyStep.java @@ -27,13 +27,13 @@ import org.eclipse.tcf.te.runtime.utils.ProgressHelper; import org.eclipse.tcf.te.runtime.utils.StatusHelper; import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.core.interfaces.IChannelManager; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.nls.Messages; /** * WaitForReadyStep */ -public class WaitForReadyStep extends AbstractPeerModelStep { +public class WaitForReadyStep extends AbstractPeerNodeStep { /** * Constructor. @@ -53,9 +53,9 @@ public class WaitForReadyStep extends AbstractPeerModelStep { */ @Override public void execute(final IStepContext context, final IPropertiesContainer data, final IFullQualifiedId fullQualifiedId, final IProgressMonitor monitor, final ICallback callback) { - final IPeerModel peerModel = getActivePeerModelContext(context, data, fullQualifiedId); + final IPeerNode peerNode = getActivePeerModelContext(context, data, fullQualifiedId); - if (peerModel != null && !Boolean.getBoolean("WaitForReadyStep.skip")) { //$NON-NLS-1$ + if (peerNode != null && !Boolean.getBoolean("WaitForReadyStep.skip")) { //$NON-NLS-1$ Protocol.invokeLater(new Runnable() { final Runnable thisRunnable = this; int refreshCount = 0; @@ -71,7 +71,7 @@ public class WaitForReadyStep extends AbstractPeerModelStep { } else { // Try to open a channel to the target and check for errors - Tcf.getChannelManager().openChannel(peerModel.getPeer(), null, new IChannelManager.DoneOpenChannel() { + Tcf.getChannelManager().openChannel(peerNode.getPeer(), null, new IChannelManager.DoneOpenChannel() { @Override public void doneOpenChannel(final Throwable error, final IChannel channel) { if (ProgressHelper.isCancel(WaitForReadyStep.this, monitor, callback)) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/utils/SimulatorUtils.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/utils/SimulatorUtils.java index c58c09538..e9a3520f8 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/utils/SimulatorUtils.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/utils/SimulatorUtils.java @@ -23,8 +23,8 @@ import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IService; import org.eclipse.tcf.te.runtime.services.interfaces.ISimulatorService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; /** * Simulator related utilities. @@ -43,18 +43,18 @@ public final class SimulatorUtils { /** * Returns if or if the given peer model has the simulator enabled or not. * - * @param peerModel The peer model node. Must not be <code>null</code>. + * @param peerNode The peer model node. Must not be <code>null</code>. * @return <code>True</code> if the simulator is enabled, <code>false</code> otherwise. */ - public static boolean isSimulatorEnabled(final IPeerModel peerModel) { - Assert.isNotNull(peerModel); + public static boolean isSimulatorEnabled(final IPeerNode peerNode) { + Assert.isNotNull(peerNode); final AtomicBoolean isEnabled = new AtomicBoolean(false); Runnable runnable = new Runnable() { @Override public void run() { - String value = peerModel.getPeer().getAttributes().get(IPeerModelProperties.PROP_SIM_ENABLED); + String value = peerNode.getPeer().getAttributes().get(IPeerNodeProperties.PROP_SIM_ENABLED); if (value != null) { isEnabled.set(Boolean.parseBoolean(value)); } @@ -72,11 +72,11 @@ public final class SimulatorUtils { * If no simulator service is configured in the peer * or the configured service is not available, <code>null</code> will be returned. * - * @param peerModel The peer model node. Must not be <code>null</code>. + * @param peerNode The peer model node. Must not be <code>null</code>. * @return The {@link Result} containing the simulator service and the settings or <code>null</code>. */ - public static Result getSimulatorService(final IPeerModel peerModel) { - Assert.isNotNull(peerModel); + public static Result getSimulatorService(final IPeerNode peerNode) { + Assert.isNotNull(peerNode); final AtomicBoolean isEnabled = new AtomicBoolean(false); final AtomicReference<String> type = new AtomicReference<String>(); @@ -85,13 +85,13 @@ public final class SimulatorUtils { Runnable runnable = new Runnable() { @Override public void run() { - String value = peerModel.getPeer().getAttributes().get(IPeerModelProperties.PROP_SIM_ENABLED); + String value = peerNode.getPeer().getAttributes().get(IPeerNodeProperties.PROP_SIM_ENABLED); if (value != null) { isEnabled.set(Boolean.parseBoolean(value)); } - type.set(peerModel.getPeer().getAttributes().get(IPeerModelProperties.PROP_SIM_TYPE)); - properties.set(peerModel.getPeer().getAttributes().get(IPeerModelProperties.PROP_SIM_PROPERTIES)); + type.set(peerNode.getPeer().getAttributes().get(IPeerNodeProperties.PROP_SIM_TYPE)); + properties.set(peerNode.getPeer().getAttributes().get(IPeerNodeProperties.PROP_SIM_PROPERTIES)); } }; @@ -101,7 +101,7 @@ public final class SimulatorUtils { Result result = null; if (isEnabled.get()) { - IService[] services = ServiceManager.getInstance().getServices(peerModel, ISimulatorService.class, false); + IService[] services = ServiceManager.getInstance().getServices(peerNode, ISimulatorService.class, false); for (IService service : services) { Assert.isTrue(service instanceof ISimulatorService); // Get the UI service which is associated with the simulator service @@ -123,25 +123,25 @@ public final class SimulatorUtils { * model node and the configured simulator service type is available. In any * other cases, the given callback is invoked immediately. * - * @param peerModel The peer model node. Must not be <code>null</code>. + * @param peerNode The peer model node. Must not be <code>null</code>. * @param monitor The progress monitor. * @param callback The callback to invoke if finished. Must not be <code>null</code>. */ - public static void start(final IPeerModel peerModel, final IProgressMonitor monitor, final ICallback callback) { - Assert.isNotNull(peerModel); + public static void start(final IPeerNode peerNode, final IProgressMonitor monitor, final ICallback callback) { + Assert.isNotNull(peerNode); Assert.isNotNull(callback); // Determine if we have to start a simulator first - final Result result = getSimulatorService(peerModel); + final Result result = getSimulatorService(peerNode); if (result != null && result.service != null) { // Check if the simulator is already running - result.service.isRunning(peerModel, result.settings, new Callback() { + result.service.isRunning(peerNode, result.settings, new Callback() { @Override protected void internalDone(Object caller, IStatus status) { Object cbResult = getResult(); if (cbResult instanceof Boolean && !((Boolean)cbResult).booleanValue()) { // Start the simulator - result.service.start(peerModel, result.settings, new Callback() { + result.service.start(peerNode, result.settings, new Callback() { @Override protected void internalDone(Object caller, IStatus status) { callback.setResult(new Boolean(status.isOK())); @@ -165,25 +165,25 @@ public final class SimulatorUtils { * model node and the configured simulator service type is available. In any * other cases, the given callback is invoked immediately. * - * @param peerModel The peer model node. Must not be <code>null</code>. + * @param peerNode The peer model node. Must not be <code>null</code>. * @param monitor The progress monitor. * @param callback The callback to invoke if finished. Must not be <code>null</code>. */ - public static void stop(final IPeerModel peerModel, final IProgressMonitor monitor, final ICallback callback) { - Assert.isNotNull(peerModel); + public static void stop(final IPeerNode peerNode, final IProgressMonitor monitor, final ICallback callback) { + Assert.isNotNull(peerNode); Assert.isNotNull(callback); // Get the associated simulator service - final Result result = getSimulatorService(peerModel); + final Result result = getSimulatorService(peerNode); if (result != null && result.service != null) { // Determine if the simulator is at all running - result.service.isRunning(peerModel, result.settings, new Callback() { + result.service.isRunning(peerNode, result.settings, new Callback() { @Override protected void internalDone(Object caller, IStatus status) { Object cbResult = getResult(); if (cbResult instanceof Boolean && ((Boolean)cbResult).booleanValue()) { // Stop the simulator - result.service.stop(peerModel, result.settings, new Callback(callback) { + result.service.stop(peerNode, result.settings, new Callback(callback) { @Override protected void internalDone(Object caller, IStatus status) { callback.done(caller, status); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/activator/CoreBundleActivator.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/activator/CoreBundleActivator.java index aed90e597..855302f66 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/activator/CoreBundleActivator.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/activator/CoreBundleActivator.java @@ -1,121 +1,121 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.processes.core.activator;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.tcf.protocol.Protocol;
-import org.eclipse.tcf.te.runtime.tracing.TraceHandler;
-import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel;
-import org.eclipse.tcf.te.tcf.locator.model.Model;
-import org.eclipse.tcf.te.tcf.processes.core.model.listener.ModelListener;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class CoreBundleActivator extends Plugin {
- // The bundle context
- private static BundleContext context;
- // The trace handler instance
- private static volatile TraceHandler traceHandler;
- // The locator model listener instance
- /* default */ IModelListener listener;
-
- // The shared instance
- private static CoreBundleActivator plugin;
-
- /**
- * Returns the bundle context
- *
- * @return the bundle context
- */
- public static BundleContext getContext() {
- return context;
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public static CoreBundleActivator getDefault() {
- return plugin;
- }
-
- /**
- * Convenience method which returns the unique identifier of this plugin.
- */
- public static String getUniqueIdentifier() {
- if (getContext() != null && getContext().getBundle() != null) {
- return getContext().getBundle().getSymbolicName();
- }
- return "org.eclipse.tcf.te.tcf.processes.core"; //$NON-NLS-1$
- }
-
- /**
- * Returns the bundles trace handler.
- *
- * @return The bundles trace handler.
- */
- public static TraceHandler getTraceHandler() {
- if (traceHandler == null) {
- traceHandler = new TraceHandler(getUniqueIdentifier());
- }
- return traceHandler;
- }
-
- /* (non-Javadoc)
- * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
- */
- @Override
- public void start(BundleContext bundleContext) throws Exception {
- CoreBundleActivator.context = bundleContext;
- plugin = this;
-
- // Create the model listener instance
- listener = new ModelListener();
-
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- if (listener == null) return;
- // Register the model listener with the locator model
- Model.getModel().addListener(listener);
- }
- };
-
- Protocol.invokeLater(runnable);
- }
-
- /* (non-Javadoc)
- * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
- */
- @Override
- public void stop(BundleContext bundleContext) throws Exception {
- CoreBundleActivator.context = null;
- plugin = null;
-
- // Remove the model listener from the locator model
- if (listener != null) {
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- ILocatorModel model = Model.getModel(true);
- if (model != null) model.removeListener(listener);
- listener = null;
- }
- };
- if (Protocol.isDispatchThread()) runnable.run();
- else Protocol.invokeAndWait(runnable);
- }
- }
-
-}
+/******************************************************************************* + * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.processes.core.activator; + +import org.eclipse.core.runtime.Plugin; +import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.runtime.tracing.TraceHandler; +import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.processes.core.model.listener.ModelListener; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class CoreBundleActivator extends Plugin { + // The bundle context + private static BundleContext context; + // The trace handler instance + private static volatile TraceHandler traceHandler; + // The locator model listener instance + /* default */ IModelListener listener; + + // The shared instance + private static CoreBundleActivator plugin; + + /** + * Returns the bundle context + * + * @return the bundle context + */ + public static BundleContext getContext() { + return context; + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static CoreBundleActivator getDefault() { + return plugin; + } + + /** + * Convenience method which returns the unique identifier of this plugin. + */ + public static String getUniqueIdentifier() { + if (getContext() != null && getContext().getBundle() != null) { + return getContext().getBundle().getSymbolicName(); + } + return "org.eclipse.tcf.te.tcf.processes.core"; //$NON-NLS-1$ + } + + /** + * Returns the bundles trace handler. + * + * @return The bundles trace handler. + */ + public static TraceHandler getTraceHandler() { + if (traceHandler == null) { + traceHandler = new TraceHandler(getUniqueIdentifier()); + } + return traceHandler; + } + + /* (non-Javadoc) + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) + */ + @Override + public void start(BundleContext bundleContext) throws Exception { + CoreBundleActivator.context = bundleContext; + plugin = this; + + // Create the model listener instance + listener = new ModelListener(); + + Runnable runnable = new Runnable() { + @Override + public void run() { + if (listener == null) return; + // Register the model listener with the locator model + Model.getModel().addListener(listener); + } + }; + + Protocol.invokeLater(runnable); + } + + /* (non-Javadoc) + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) + */ + @Override + public void stop(BundleContext bundleContext) throws Exception { + CoreBundleActivator.context = null; + plugin = null; + + // Remove the model listener from the locator model + if (listener != null) { + Runnable runnable = new Runnable() { + @Override + public void run() { + IPeerModel model = Model.getModel(true); + if (model != null) model.removeListener(listener); + listener = null; + } + }; + if (Protocol.isDispatchThread()) runnable.run(); + else Protocol.invokeAndWait(runnable); + } + } + +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/ModelManager.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/ModelManager.java index e323927ef..ac5850b73 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/ModelManager.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/ModelManager.java @@ -15,7 +15,7 @@ import java.util.concurrent.atomic.AtomicReference; import org.eclipse.core.runtime.Assert; import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; import org.eclipse.tcf.te.tcf.processes.core.model.runtime.RuntimeModel; @@ -31,11 +31,11 @@ public class ModelManager { * <p> * If not yet initialized, a new runtime model will be initialized before returning. * - * @param peerModel The peer model instance. Must not be <code>null</code>. + * @param peerNode The peer model instance. Must not be <code>null</code>. * @return The runtime model. */ - public static IRuntimeModel getRuntimeModel(final IPeerModel peerModel) { - Assert.isNotNull(peerModel); + public static IRuntimeModel getRuntimeModel(final IPeerNode peerNode) { + Assert.isNotNull(peerNode); // The result reference holder final AtomicReference<IRuntimeModel> runtimeModel = new AtomicReference<IRuntimeModel>(); @@ -47,12 +47,12 @@ public class ModelManager { Assert.isTrue(Protocol.isDispatchThread()); // Get the peer id - String id = peerModel.getPeerId(); + String id = peerNode.getPeerId(); // Lookup the runtime model instance IRuntimeModel candidate = runtimeModels.get(id); // Initialize a new runtime model instance if necessary if (candidate == null) { - candidate = initializeRuntimeModel(peerModel); + candidate = initializeRuntimeModel(peerNode); if (candidate != null) runtimeModels.put(id, candidate); } // Store to the result reference holder @@ -72,22 +72,22 @@ public class ModelManager { * <p> * Must be called within the TCF dispatch thread. * - * @param peerModel The peer model instance. Must not be <code>null</code>. + * @param peerNode The peer model instance. Must not be <code>null</code>. * @return The runtime model. */ - protected static IRuntimeModel initializeRuntimeModel(IPeerModel peerModel) { + protected static IRuntimeModel initializeRuntimeModel(IPeerNode peerNode) { Assert.isTrue(Protocol.isDispatchThread()); - IRuntimeModel runtimeModel = new RuntimeModel(peerModel); + IRuntimeModel runtimeModel = new RuntimeModel(peerNode); return runtimeModel; } /** * Dispose the runtime model. * - * @param peerModel The peer model instance. Must not be <code>null</code>. + * @param peerNode The peer model instance. Must not be <code>null</code>. */ - public static void disposeRuntimeModel(final IPeerModel peerModel) { - Assert.isNotNull(peerModel); + public static void disposeRuntimeModel(final IPeerNode peerNode) { + Assert.isNotNull(peerNode); Runnable runnable = new Runnable() { @Override @@ -95,7 +95,7 @@ public class ModelManager { Assert.isTrue(Protocol.isDispatchThread()); // Get the peer id - String id = peerModel.getPeerId(); + String id = peerNode.getPeerId(); // Lookup the runtime model instance IRuntimeModel candidate = runtimeModels.remove(id); // Dispose it diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/interfaces/runtime/IRuntimeModel.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/interfaces/runtime/IRuntimeModel.java index a4c7fa33c..202fb645d 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/interfaces/runtime/IRuntimeModel.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/interfaces/runtime/IRuntimeModel.java @@ -10,7 +10,7 @@ package org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime; import org.eclipse.tcf.te.tcf.core.model.interfaces.IModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; /** @@ -22,7 +22,7 @@ import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; * <p> * All model access must happen in the TCF dispatch thread. */ -public interface IRuntimeModel extends IModel, IPeerModelProvider { +public interface IRuntimeModel extends IModel, IPeerNodeProvider { /** * Set the auto-refresh interval in seconds. diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/listener/ModelListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/listener/ModelListener.java index e5d979468..216609e9d 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/listener/ModelListener.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/listener/ModelListener.java @@ -11,8 +11,8 @@ package org.eclipse.tcf.te.tcf.processes.core.model.listener; import org.eclipse.core.runtime.Assert; import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter; import org.eclipse.tcf.te.tcf.processes.core.model.ModelManager; @@ -22,10 +22,10 @@ import org.eclipse.tcf.te.tcf.processes.core.model.ModelManager; public class ModelListener extends ModelAdapter { /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter#locatorModelChanged(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel, org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel, boolean) + * @see org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter#locatorModelChanged(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel, org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode, boolean) */ @Override - public void locatorModelChanged(ILocatorModel model, IPeerModel peer, boolean added) { + public void locatorModelChanged(IPeerModel model, IPeerNode peer, boolean added) { Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ if (peer == null) return; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/nodes/ProcessContextNode.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/nodes/ProcessContextNode.java index 0dc33b65f..2bf003277 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/nodes/ProcessContextNode.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/nodes/ProcessContextNode.java @@ -25,15 +25,15 @@ import org.eclipse.tcf.te.runtime.model.interfaces.contexts.IAsyncRefreshableCtx import org.eclipse.tcf.te.runtime.model.interfaces.contexts.IAsyncRefreshableCtx.QueryState; import org.eclipse.tcf.te.runtime.model.interfaces.contexts.IAsyncRefreshableCtx.QueryType; import org.eclipse.tcf.te.tcf.core.model.interfaces.IModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNodeProperties; /** * A process context node implementation. */ -public class ProcessContextNode extends ContainerModelNode implements IProcessContextNode, IPeerModelProvider, IFilterable { +public class ProcessContextNode extends ContainerModelNode implements IProcessContextNode, IPeerNodeProvider, IFilterable { // Reference to the agent side process context object private IProcesses.ProcessContext pContext = null; // Reference to the agent side system monitor context object @@ -156,11 +156,11 @@ public class ProcessContextNode extends ContainerModelNode implements IProcessCo } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider#getPeerModel() + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider#getPeerModel() */ @Override - public IPeerModel getPeerModel() { - return (IPeerModel)getAdapter(IPeerModel.class); + public IPeerNode getPeerModel() { + return (IPeerNode)getAdapter(IPeerNode.class); } /* (non-Javadoc) @@ -224,13 +224,13 @@ public class ProcessContextNode extends ContainerModelNode implements IProcessCo if (ISysMonitor.SysMonitorContext.class.isAssignableFrom(adapter)) { return sContext; } - if (IPeerModelProvider.class.isAssignableFrom(adapter)) { + if (IPeerNodeProvider.class.isAssignableFrom(adapter)) { IModel model = getParent(IModel.class); - if (model instanceof IPeerModelProvider) return model; + if (model instanceof IPeerNodeProvider) return model; } - if (IPeerModel.class.isAssignableFrom(adapter)) { + if (IPeerNode.class.isAssignableFrom(adapter)) { IModel model = getParent(IModel.class); - if (model instanceof IPeerModelProvider) return ((IPeerModelProvider)model).getPeerModel(); + if (model instanceof IPeerNodeProvider) return ((IPeerNodeProvider)model).getPeerModel(); } if (IAsyncRefreshableCtx.class.isAssignableFrom(adapter)) { return refreshableCtxAdapter; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/runtime/RuntimeModel.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/runtime/RuntimeModel.java index 384a785bd..5bccafe5a 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/runtime/RuntimeModel.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/runtime/RuntimeModel.java @@ -29,7 +29,7 @@ import org.eclipse.tcf.te.tcf.core.model.interfaces.services.IModelLookupService import org.eclipse.tcf.te.tcf.core.model.interfaces.services.IModelRefreshService; import org.eclipse.tcf.te.tcf.core.model.interfaces.services.IModelService; import org.eclipse.tcf.te.tcf.core.model.interfaces.services.IModelUpdateService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModelLookupService; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModelRefreshService; @@ -51,7 +51,7 @@ public final class RuntimeModel extends ContainerModelNode implements IRuntimeMo private IFactory factory = null; // Reference to the associated peer model - private final IPeerModel peerModel; + private final IPeerNode peerNode; // Reference to the refresh service private final IRuntimeModelRefreshService refreshService = new RuntimeModelRefreshService(this); @@ -73,17 +73,17 @@ public final class RuntimeModel extends ContainerModelNode implements IRuntimeMo /** * Constructor. * - * @param peerModel The peerModel to associated. Must not be <code>null</code>. + * @param peerNode The peerNode to associated. Must not be <code>null</code>. */ - public RuntimeModel(IPeerModel peerModel) { + public RuntimeModel(IPeerNode peerNode) { super(); disposed = false; setChangeEventsEnabled(true); suppressEventsOnNullParent = false; - Assert.isNotNull(peerModel); - this.peerModel = peerModel; + Assert.isNotNull(peerNode); + this.peerNode = peerNode; // No initial context query required refreshableCtxAdapter.setQueryState(QueryType.CONTEXT, QueryState.DONE); @@ -180,12 +180,12 @@ public final class RuntimeModel extends ContainerModelNode implements IRuntimeMo } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider#getPeerModel() + * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider#getPeerModel() */ @Override - public IPeerModel getPeerModel() { + public IPeerNode getPeerModel() { Assert.isTrue(checkThreadAccess(), "Illegal Thread Access"); //$NON-NLS-1$ - return peerModel; + return peerNode; } /* (non-Javadoc) diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/runtime/services/RuntimeModelChannelService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/runtime/services/RuntimeModelChannelService.java index 7ed2fdf3d..14f2887e0 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/runtime/services/RuntimeModelChannelService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/runtime/services/RuntimeModelChannelService.java @@ -19,7 +19,7 @@ import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.core.interfaces.IChannelManager; import org.eclipse.tcf.te.tcf.core.model.interfaces.services.IModelChannelService; import org.eclipse.tcf.te.tcf.core.model.services.AbstractModelService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; import org.eclipse.tcf.te.tcf.processes.core.model.runtime.listener.RuntimeModelProcessServiceListener; import org.eclipse.tcf.te.tcf.processes.core.model.runtime.listener.RuntimeModelRunControlServiceListener; @@ -67,7 +67,7 @@ public class RuntimeModelChannelService extends AbstractModelService<IRuntimeMod } // Get the peer model node - IPeerModel node = getModel().getPeerModel(); + IPeerNode node = getModel().getPeerModel(); if (node != null) { // Open a new channel to the remote peer Tcf.getChannelManager().openChannel(node.getPeer(), null, new IChannelManager.DoneOpenChannel() { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/AttachStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/AttachStep.java index c417374e9..4a0ee4ffe 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/AttachStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/AttachStep.java @@ -38,7 +38,7 @@ import org.eclipse.tcf.te.tcf.core.async.CallbackInvocationDelegate; import org.eclipse.tcf.te.tcf.core.interfaces.IChannelManager; import org.eclipse.tcf.te.tcf.core.model.interfaces.IModel; import org.eclipse.tcf.te.tcf.core.model.interfaces.services.IModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.activator.CoreBundleActivator; import org.eclipse.tcf.te.tcf.processes.core.interfaces.IContextHelpIds; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; @@ -54,20 +54,20 @@ public class AttachStep { * <p> * <b>Note:</b> This method must be called from within the TCF dispatch thread. * - * @param peerModel The peer model. Must not be <code>null</code>. + * @param peerNode The peer model. Must not be <code>null</code>. * @param nodes The list of process context nodes. Must not be <code>null</code>. * @param callback The callback to invoke once the operation completed, or<code>null</code>. */ - public void executeAttach(final IPeerModel peerModel, final IProcessContextNode[] nodes, final ICallback callback) { + public void executeAttach(final IPeerNode peerNode, final IProcessContextNode[] nodes, final ICallback callback) { Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - Assert.isNotNull(peerModel); + Assert.isNotNull(peerNode); Assert.isNotNull(nodes); // Determine if we have to execute the attach at all final List<IProcessContextNode> nodesToAttach = new ArrayList<IProcessContextNode>(); for (IProcessContextNode node : nodes) { - IPeerModel parentPeerModel = (IPeerModel)node.getAdapter(IPeerModel.class); - if (!peerModel.equals(parentPeerModel)) continue; + IPeerNode parentPeerModel = (IPeerNode)node.getAdapter(IPeerNode.class); + if (!peerNode.equals(parentPeerModel)) continue; // If not yet attached, we have to attach to it if (node.getProcessContext() != null && !node.getProcessContext().isAttached()) { @@ -78,17 +78,17 @@ public class AttachStep { // Anything to attach? if (!nodesToAttach.isEmpty()) { // Determine the debug service to attach to the peer node - IDebugService dbgService = ServiceManager.getInstance().getService(peerModel, IDebugService.class, false); + IDebugService dbgService = ServiceManager.getInstance().getService(peerNode, IDebugService.class, false); if (dbgService != null) { // Attach to the peer node first - dbgService.attach(peerModel, new PropertiesContainer(), null, new Callback() { + dbgService.attach(peerNode, new PropertiesContainer(), null, new Callback() { @Override protected void internalDone(Object caller, IStatus status) { callback.setProperty("launch", getProperty("launch")); //$NON-NLS-1$ //$NON-NLS-2$ Runnable runnable = new Runnable() { @Override public void run() { - doAttach(peerModel, Collections.unmodifiableList(nodesToAttach), callback); + doAttach(peerNode, Collections.unmodifiableList(nodesToAttach), callback); } }; if (Protocol.isDispatchThread()) runnable.run(); @@ -96,7 +96,7 @@ public class AttachStep { } }); } else { - doAttach(peerModel, Collections.unmodifiableList(nodesToAttach), callback); + doAttach(peerNode, Collections.unmodifiableList(nodesToAttach), callback); } } else { onDone(callback); @@ -109,19 +109,19 @@ public class AttachStep { * <p> * <b>Note:</b> This method must be called from within the TCF dispatch thread. * - * @param peerModel The peer model. Must not be <code>null</code>. + * @param peerNode The peer model. Must not be <code>null</code>. * @param nodes The process context node. Must not be <code>null</code>. * @param callback The callback to invoke once the operation completed, or<code>null</code>. */ - protected void doAttach(final IPeerModel peerModel, final List<IProcessContextNode> nodes, final ICallback callback) { + protected void doAttach(final IPeerNode peerNode, final List<IProcessContextNode> nodes, final ICallback callback) { Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - Assert.isNotNull(peerModel); + Assert.isNotNull(peerNode); Assert.isNotNull(nodes); // Loop the nodes and attach to them if (!nodes.isEmpty()) { // Open a channel - Tcf.getChannelManager().openChannel(peerModel.getPeer(), null, new IChannelManager.DoneOpenChannel() { + Tcf.getChannelManager().openChannel(peerNode.getPeer(), null, new IChannelManager.DoneOpenChannel() { @Override public void doneOpenChannel(final Throwable error, final IChannel channel) { if (error == null) { @@ -132,7 +132,7 @@ public class AttachStep { @Override protected void internalDone(Object caller, IStatus status) { if (status.getSeverity() == IStatus.ERROR) { - onError(peerModel, status.getMessage(), status.getException(), callback); + onError(peerNode, status.getMessage(), status.getException(), callback); } else { onDone(callback); } @@ -177,10 +177,10 @@ public class AttachStep { // Mark the collector initialization done collector.initDone(); } else { - onError(peerModel, NLS.bind(Messages.AttachStep_error_missingService, peerModel.getName()), null, callback); + onError(peerNode, NLS.bind(Messages.AttachStep_error_missingService, peerNode.getName()), null, callback); } } else { - onError(peerModel, NLS.bind(Messages.AttachStep_error_openChannel, peerModel.getName()), error, callback); + onError(peerNode, NLS.bind(Messages.AttachStep_error_openChannel, peerNode.getName()), error, callback); } } }); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/DetachStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/DetachStep.java index 3d43b7a1a..9313cea9f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/DetachStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/DetachStep.java @@ -30,7 +30,7 @@ import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.core.interfaces.IChannelManager; import org.eclipse.tcf.te.tcf.core.model.interfaces.IModel; import org.eclipse.tcf.te.tcf.core.model.interfaces.services.IModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.activator.CoreBundleActivator; import org.eclipse.tcf.te.tcf.processes.core.interfaces.IContextHelpIds; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; @@ -55,7 +55,7 @@ public class DetachStep { // If the context is not attached, there is nothing to do if (node.getProcessContext() != null && node.getProcessContext().isAttached()) { - IPeerModel peerNode = (IPeerModel)node.getAdapter(IPeerModel.class); + IPeerNode peerNode = (IPeerNode)node.getAdapter(IPeerNode.class); if (peerNode != null) { doDetach(node, callback); } else { @@ -84,7 +84,7 @@ public class DetachStep { Assert.isNotNull(node); // Determine the peer model node - final IPeerModel peerNode = (IPeerModel)node.getAdapter(IPeerModel.class); + final IPeerNode peerNode = (IPeerNode)node.getAdapter(IPeerNode.class); // Open a channel Tcf.getChannelManager().openChannel(peerNode.getPeer(), null, new IChannelManager.DoneOpenChannel() { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/TerminateStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/TerminateStep.java index c3534d7ff..d5bc4f9c8 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/TerminateStep.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/model/steps/TerminateStep.java @@ -27,7 +27,7 @@ import org.eclipse.tcf.te.runtime.statushandler.interfaces.IStatusHandler; import org.eclipse.tcf.te.runtime.statushandler.interfaces.IStatusHandlerConstants; import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.core.interfaces.IChannelManager; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.activator.CoreBundleActivator; import org.eclipse.tcf.te.tcf.processes.core.interfaces.IContextHelpIds; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; @@ -52,7 +52,7 @@ public class TerminateStep { // If the context is not attached, there is nothing to do if (node.getProcessContext() != null) { - IPeerModel peerNode = (IPeerModel)node.getAdapter(IPeerModel.class); + IPeerNode peerNode = (IPeerNode)node.getAdapter(IPeerNode.class); if (peerNode != null) { doTerminate(node, callback); } else { @@ -78,7 +78,7 @@ public class TerminateStep { Assert.isNotNull(node); // Determine the peer model node - final IPeerModel peerNode = (IPeerModel)node.getAdapter(IPeerModel.class); + final IPeerNode peerNode = (IPeerNode)node.getAdapter(IPeerNode.class); // Open a channel Tcf.getChannelManager().openChannel(peerNode.getPeer(), null, new IChannelManager.DoneOpenChannel() { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/plugin.xml index 0d976fc89..ae462b3cc 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/plugin.xml @@ -8,7 +8,7 @@ adaptableType="org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode" class="org.eclipse.tcf.te.tcf.processes.ui.internal.adapters.AdapterFactory"> <adapter type="org.eclipse.jface.viewers.ILabelProvider"/> - <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <adapter type="org.eclipse.tcf.te.ui.interfaces.ISearchable"/> </factory> @@ -56,7 +56,7 @@ id="org.eclipse.tcf.te.tcf.processes.ui.properties" namespace="processMonitor.delegatedActivation" properties="isColumnActive,isFilterActive" - type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> </propertyTester> </extension> @@ -86,7 +86,7 @@ <or> <and> <reference definitionId="te.expressions.IConnectable.connected"/> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <and> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="Processes"/> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="SysMonitor"/> @@ -154,7 +154,7 @@ <enablement> <with variable="activeEditorInput"> <reference definitionId="te.expressions.IConnectable.connected"/> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <and> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="Processes"/> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="SysMonitor"/> @@ -182,7 +182,7 @@ <iterate operator="and" ifEmpty="false"> <and> <instanceof value="org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode"/> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test forcePluginActivation="true" property="org.eclipse.tcf.te.runtime.services.hasService" @@ -208,7 +208,7 @@ <iterate operator="and" ifEmpty="false"> <and> <instanceof value="org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode"/> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test forcePluginActivation="true" property="org.eclipse.tcf.te.runtime.services.hasService" @@ -459,7 +459,7 @@ <count value="+"/> <iterate operator="and" ifEmpty="false"> <instanceof value="org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode"/> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test forcePluginActivation="true" property="org.eclipse.tcf.te.runtime.services.hasService" @@ -500,7 +500,7 @@ <count value="+"/> <iterate operator="and" ifEmpty="false"> <instanceof value="org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode"/> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test forcePluginActivation="true" property="org.eclipse.tcf.te.runtime.services.hasService" @@ -641,7 +641,7 @@ width="250"> <activation> <with variable="input"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="processMonitor.delegatedActivation.isColumnActive" args="name" value="true"/> </adapt> </with> @@ -657,7 +657,7 @@ width="50"> <activation> <with variable="input"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="processMonitor.delegatedActivation.isColumnActive" args="PID" value="true"/> </adapt> </with> @@ -673,7 +673,7 @@ width="50"> <activation> <with variable="input"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="processMonitor.delegatedActivation.isColumnActive" args="PPID" value="true"/> </adapt> </with> @@ -689,7 +689,7 @@ width="50"> <activation> <with variable="input"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="processMonitor.delegatedActivation.isColumnActive" args="state" value="true"/> </adapt> </with> @@ -705,7 +705,7 @@ width="50"> <activation> <with variable="input"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="processMonitor.delegatedActivation.isColumnActive" args="user" value="true"/> </adapt> </with> @@ -721,7 +721,7 @@ width="100"> <activation> <with variable="input"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="processMonitor.delegatedActivation.isColumnActive" args="cmdline" value="true"/> </adapt> </with> @@ -738,7 +738,7 @@ name="%singlethreadfilter.name"> <activation> <with variable="input"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="processMonitor.delegatedActivation.isFilterActive" args="singleThread" value="true"/> </adapt> </with> diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/ProcessMonitorEditorPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/ProcessMonitorEditorPage.java index 27ec2b409..8e6aca1a1 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/ProcessMonitorEditorPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/ProcessMonitorEditorPage.java @@ -20,7 +20,7 @@ import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.tcf.te.runtime.events.ChangeEvent; import org.eclipse.tcf.te.runtime.events.EventManager; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.ModelManager; import org.eclipse.tcf.te.tcf.processes.ui.navigator.events.TreeViewerListener; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; @@ -176,10 +176,10 @@ public class ProcessMonitorEditorPage extends TreeViewerExplorerEditorPage { @Override protected Object getViewerInput() { Object element = getEditorInputNode(); - IPeerModel peerModel = element instanceof IPeerModel ? (IPeerModel)element : null; - if (peerModel == null && element instanceof IAdaptable) { - peerModel = (IPeerModel)((IAdaptable)element).getAdapter(IPeerModel.class); + IPeerNode peerNode = element instanceof IPeerNode ? (IPeerNode)element : null; + if (peerNode == null && element instanceof IAdaptable) { + peerNode = (IPeerNode)((IAdaptable)element).getAdapter(IPeerNode.class); } - return peerModel != null ? ModelManager.getRuntimeModel(peerModel) : null; + return peerNode != null ? ModelManager.getRuntimeModel(peerNode) : null; } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/ContentProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/ContentProvider.java index e854ae43b..c579540df 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/ContentProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/ContentProvider.java @@ -10,7 +10,7 @@ package org.eclipse.tcf.te.tcf.processes.ui.editor.tree; import org.eclipse.jface.viewers.Viewer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.ModelManager; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; @@ -19,15 +19,15 @@ import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeMo */ public class ContentProvider extends org.eclipse.tcf.te.tcf.processes.ui.navigator.runtime.ContentProvider { // The target's peer model. - private IPeerModel peerModel; + private IPeerNode peerNode; /* (non-Javadoc) * @see org.eclipse.tcf.te.tcf.processes.ui.navigator.runtime.ContentProvider#dispose() */ @Override public void dispose() { - if (peerModel != null) { - IRuntimeModel model = ModelManager.getRuntimeModel(peerModel); + if (peerNode != null) { + IRuntimeModel model = ModelManager.getRuntimeModel(peerNode); if (model != null && model.getAutoRefreshInterval() > 0) { // If the model is auto refreshing, then stop it when the editor is disposed. model.setAutoRefreshInterval(0); @@ -41,8 +41,8 @@ public class ContentProvider extends org.eclipse.tcf.te.tcf.processes.ui.navigat @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { super.inputChanged(viewer, oldInput, newInput); - if (newInput instanceof IPeerModel) { - peerModel = (IPeerModel) newInput; + if (newInput instanceof IPeerNode) { + peerNode = (IPeerNode) newInput; } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/columns/PIDLabelProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/columns/PIDLabelProvider.java index 3a65a5bdd..c1a12491e 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/columns/PIDLabelProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/columns/PIDLabelProvider.java @@ -15,7 +15,7 @@ import org.eclipse.core.runtime.Assert; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IPendingOperationNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; @@ -55,9 +55,9 @@ public class PIDLabelProvider extends AbstractLabelProviderDelegate { String id = pid.get() >= 0 ? Long.toString(pid.get()) : ""; //$NON-NLS-1$ if (id.startsWith("P")) id = id.substring(1); //$NON-NLS-1$ - IPeerModel peerModel = (IPeerModel)node.getAdapter(IPeerModel.class); - IUIService service = peerModel != null ? ServiceManager.getInstance().getService(peerModel, IUIService.class) : null; - IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerModel, IProcessMonitorUIDelegate.class) : null; + IPeerNode peerNode = (IPeerNode)node.getAdapter(IPeerNode.class); + IUIService service = peerNode != null ? ServiceManager.getInstance().getService(peerNode, IUIService.class) : null; + IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerNode, IProcessMonitorUIDelegate.class) : null; String newId = delegate != null ? delegate.getText(element, "PID", id) : null; //$NON-NLS-1$ return newId != null ? newId : id; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/columns/PPIDLabelProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/columns/PPIDLabelProvider.java index 184cad8c5..2cb8a8769 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/columns/PPIDLabelProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/columns/PPIDLabelProvider.java @@ -15,7 +15,7 @@ import org.eclipse.core.runtime.Assert; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IPendingOperationNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; @@ -53,9 +53,9 @@ public class PPIDLabelProvider extends AbstractLabelProviderDelegate { String id = ppid.get() >= 0 ? Long.toString(ppid.get()) : ""; //$NON-NLS-1$ - IPeerModel peerModel = (IPeerModel)node.getAdapter(IPeerModel.class); - IUIService service = peerModel != null ? ServiceManager.getInstance().getService(peerModel, IUIService.class) : null; - IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerModel, IProcessMonitorUIDelegate.class) : null; + IPeerNode peerNode = (IPeerNode)node.getAdapter(IPeerNode.class); + IUIService service = peerNode != null ? ServiceManager.getInstance().getService(peerNode, IUIService.class) : null; + IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerNode, IProcessMonitorUIDelegate.class) : null; String newId = delegate != null ? delegate.getText(element, "PPID", id) : null; //$NON-NLS-1$ return newId != null ? newId : id; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/AttachHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/AttachHandler.java index 88c076a9c..c0004f7dd 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/AttachHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/AttachHandler.java @@ -24,7 +24,7 @@ import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.callback.Callback; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.core.model.steps.AttachStep; import org.eclipse.ui.handlers.HandlerUtil; @@ -67,18 +67,18 @@ public class AttachHandler extends AbstractHandler { Assert.isNotNull(selection); // Analyze the selection and collect all nodes per parent peer model node. - final Map<IPeerModel, List<IProcessContextNode>> contexts = new HashMap<IPeerModel, List<IProcessContextNode>>(); + final Map<IPeerNode, List<IProcessContextNode>> contexts = new HashMap<IPeerNode, List<IProcessContextNode>>(); Iterator<?> iterator = selection.iterator(); while (iterator.hasNext()) { Object candidate = iterator.next(); if (candidate instanceof IProcessContextNode) { IProcessContextNode node = (IProcessContextNode)candidate; - IPeerModel peerModel = (IPeerModel)node.getAdapter(IPeerModel.class); - if (peerModel != null) { - List<IProcessContextNode> nodes = contexts.get(peerModel); + IPeerNode peerNode = (IPeerNode)node.getAdapter(IPeerNode.class); + if (peerNode != null) { + List<IProcessContextNode> nodes = contexts.get(peerNode); if (nodes == null) { nodes = new ArrayList<IProcessContextNode>(); - contexts.put(peerModel, nodes); + contexts.put(peerNode, nodes); } if (!nodes.contains(node)) nodes.add(node); } @@ -87,10 +87,10 @@ public class AttachHandler extends AbstractHandler { // If not empty, attach to all nodes of the original selection per parent peer model node. if (!contexts.isEmpty()) { - for (Entry<IPeerModel, List<IProcessContextNode>> entry : contexts.entrySet()) { - IPeerModel peerModel = entry.getKey(); + for (Entry<IPeerNode, List<IProcessContextNode>> entry : contexts.entrySet()) { + IPeerNode peerNode = entry.getKey(); List<IProcessContextNode> nodes = entry.getValue(); - doAttach(event, peerModel, nodes.toArray(new IProcessContextNode[nodes.size()])); + doAttach(event, peerNode, nodes.toArray(new IProcessContextNode[nodes.size()])); } } } @@ -103,14 +103,14 @@ public class AttachHandler extends AbstractHandler { * @param event The execution event. * @param nodes The list of process context nodes. Must not be <code>null</code>. */ - protected void doAttach(final ExecutionEvent event, final IPeerModel peerModel, final IProcessContextNode[] nodes) { + protected void doAttach(final ExecutionEvent event, final IPeerNode peerNode, final IProcessContextNode[] nodes) { Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - Assert.isNotNull(peerModel); + Assert.isNotNull(peerNode); Assert.isNotNull(nodes); if (nodes.length > 0) { AttachStep step = new AttachStep(); - step.executeAttach(peerModel, nodes, new Callback()); + step.executeAttach(peerNode, nodes, new Callback()); } } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/ConfigIntervalDynamicContribution.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/ConfigIntervalDynamicContribution.java index 8392909a4..39546dc3c 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/ConfigIntervalDynamicContribution.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/ConfigIntervalDynamicContribution.java @@ -25,7 +25,7 @@ import org.eclipse.jface.action.Separator; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.util.SafeRunnable; import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.ModelManager; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; import org.eclipse.tcf.te.tcf.processes.ui.activator.UIPlugin; @@ -174,10 +174,10 @@ public class ConfigIntervalDynamicContribution extends CompoundContributionItem @Override protected IContributionItem[] getContributionItems() { IEditorInput editorInput = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor().getEditorInput(); - IPeerModel peerModel = (IPeerModel) editorInput.getAdapter(IPeerModel.class); + IPeerNode peerNode = (IPeerNode) editorInput.getAdapter(IPeerNode.class); List<IContributionItem> items = new ArrayList<IContributionItem>(); - if (peerModel != null) { - IRuntimeModel model = ModelManager.getRuntimeModel(peerModel); + if (peerNode != null) { + IRuntimeModel model = ModelManager.getRuntimeModel(peerNode); List<IContributionItem> groupItems = createGradeActions(model); if(!groupItems.isEmpty()) { items.addAll(groupItems); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/ConfigRefreshIntervalHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/ConfigRefreshIntervalHandler.java index 36b0285ee..f8194cf99 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/ConfigRefreshIntervalHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/ConfigRefreshIntervalHandler.java @@ -14,7 +14,7 @@ import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.window.Window; import org.eclipse.swt.widgets.Shell; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.ModelManager; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; import org.eclipse.tcf.te.tcf.processes.ui.internal.dialogs.IntervalConfigDialog; @@ -33,7 +33,7 @@ public class ConfigRefreshIntervalHandler extends AbstractHandler { @Override public Object execute(ExecutionEvent event) throws ExecutionException { IEditorInput editorInput = HandlerUtil.getActiveEditorInputChecked(event); - IPeerModel peer = (IPeerModel) editorInput.getAdapter(IPeerModel.class); + IPeerNode peer = (IPeerNode) editorInput.getAdapter(IPeerNode.class); if (peer != null) { Shell parent = HandlerUtil.getActiveShellChecked(event); IntervalConfigDialog dialog = new IntervalConfigDialog(peer, parent); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/EditorHandlerDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/EditorHandlerDelegate.java index 10d56d09d..60b6787b2 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/EditorHandlerDelegate.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/EditorHandlerDelegate.java @@ -15,7 +15,7 @@ import org.eclipse.jface.viewers.Viewer; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; import org.eclipse.tcf.te.tcf.processes.ui.editor.ProcessMonitorEditorPage; -import org.eclipse.tcf.te.tcf.ui.handler.AbstractPeerModelEditorHandlerDelegate; +import org.eclipse.tcf.te.tcf.ui.handler.AbstractPeerNodeEditorHandlerDelegate; import org.eclipse.tcf.te.ui.swt.DisplayUtil; import org.eclipse.tcf.te.ui.views.editor.Editor; import org.eclipse.ui.IEditorPart; @@ -25,7 +25,7 @@ import org.eclipse.ui.forms.editor.IFormPage; /** * Processes properties command handler implementation. */ -public class EditorHandlerDelegate extends AbstractPeerModelEditorHandlerDelegate { +public class EditorHandlerDelegate extends AbstractPeerNodeEditorHandlerDelegate { /* (non-Javadoc) * @see org.eclipse.tcf.te.ui.interfaces.handler.IEditorHandlerDelegate#postOpenProperties(org.eclipse.ui.IEditorPart, java.lang.Object) diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/RefreshProcessListHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/RefreshProcessListHandler.java index e398ea4b9..968c48fb5 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/RefreshProcessListHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/RefreshProcessListHandler.java @@ -24,7 +24,7 @@ import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; import org.eclipse.tcf.te.tcf.core.model.interfaces.IModel; import org.eclipse.tcf.te.tcf.core.model.interfaces.services.IModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.ModelManager; import org.eclipse.tcf.te.tcf.processes.ui.interfaces.IProcessMonitorUIDelegate; import org.eclipse.ui.IEditorInput; @@ -47,7 +47,7 @@ public class RefreshProcessListHandler extends AbstractHandler implements IEleme @Override public Object execute(ExecutionEvent event) throws ExecutionException { IEditorInput editorInput = HandlerUtil.getActiveEditorInputChecked(event); - final IPeerModel peer = (IPeerModel) editorInput.getAdapter(IPeerModel.class); + final IPeerNode peer = (IPeerNode) editorInput.getAdapter(IPeerNode.class); if (peer != null) { BusyIndicator.showWhile(PlatformUI.getWorkbench().getDisplay(), new Runnable() { @Override @@ -85,7 +85,7 @@ public class RefreshProcessListHandler extends AbstractHandler implements IEleme IWorkbenchPart part = site.getPart(); if (part instanceof IEditorPart) { IEditorInput editorInput = ((IEditorPart)part).getEditorInput(); - IPeerModel node = editorInput != null ? (IPeerModel) editorInput.getAdapter(IPeerModel.class) : null; + IPeerNode node = editorInput != null ? (IPeerNode) editorInput.getAdapter(IPeerNode.class) : null; IUIService service = ServiceManager.getInstance().getService(node, IUIService.class); IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(node, IProcessMonitorUIDelegate.class) : null; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/TerminateHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/TerminateHandler.java index e111f41e5..c39ef8a7a 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/TerminateHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/handler/TerminateHandler.java @@ -27,7 +27,7 @@ import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; import org.eclipse.tcf.te.runtime.statushandler.StatusHandlerUtil; import org.eclipse.tcf.te.tcf.core.model.interfaces.IModel; import org.eclipse.tcf.te.tcf.core.model.interfaces.services.IModelUpdateService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.core.model.steps.TerminateStep; import org.eclipse.tcf.te.tcf.processes.ui.help.IContextHelpIds; @@ -97,7 +97,7 @@ public class TerminateHandler extends AbstractHandler implements IElementUpdater IWorkbenchPart part = site.getPart(); if (part instanceof IEditorPart) { IEditorInput editorInput = ((IEditorPart)part).getEditorInput(); - IPeerModel node = editorInput != null ? (IPeerModel) editorInput.getAdapter(IPeerModel.class) : null; + IPeerNode node = editorInput != null ? (IPeerNode) editorInput.getAdapter(IPeerNode.class) : null; IUIService service = ServiceManager.getInstance().getService(node, IUIService.class); IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(node, IProcessMonitorUIDelegate.class) : null; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/interfaces/IProcessMonitorUIDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/interfaces/IProcessMonitorUIDelegate.java index 677e4105d..bb0acbe7e 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/interfaces/IProcessMonitorUIDelegate.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/interfaces/IProcessMonitorUIDelegate.java @@ -9,7 +9,7 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.processes.ui.interfaces; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.ui.interfaces.ISearchable; @@ -65,5 +65,5 @@ public interface IProcessMonitorUIDelegate { * @param node The peer model node context. Must not be <code>null</code>. * @return The list of searchables to use or <code>null</code>. */ - public ISearchable[] getSearchables(IPeerModel node); + public ISearchable[] getSearchables(IPeerNode node); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/adapters/AdapterFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/adapters/AdapterFactory.java index e26b1cc9c..b4c6ca5b7 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/adapters/AdapterFactory.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/adapters/AdapterFactory.java @@ -14,7 +14,7 @@ import java.util.concurrent.atomic.AtomicReference; import org.eclipse.core.runtime.IAdapterFactory; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; import org.eclipse.tcf.te.tcf.processes.ui.navigator.runtime.LabelProviderDelegate; @@ -30,7 +30,7 @@ public class AdapterFactory implements IAdapterFactory { private static final Class<?>[] CLASSES = new Class[] { ILabelProvider.class, - IPeerModel.class, + IPeerNode.class, ISearchable.class }; @@ -43,17 +43,17 @@ public class AdapterFactory implements IAdapterFactory { if (ILabelProvider.class.equals(adapterType)) { return labelProvider; } - if (IPeerModel.class.equals(adapterType)) { + if (IPeerNode.class.equals(adapterType)) { return ((IProcessContextNode) adaptableObject).getAdapter(adapterType); } if (ISearchable.class.equals(adapterType)) { - return new ProcessSearchable((IPeerModel)((IProcessContextNode)adaptableObject).getAdapter(IPeerModel.class)); + return new ProcessSearchable((IPeerNode)((IProcessContextNode)adaptableObject).getAdapter(IPeerNode.class)); } } if (adaptableObject instanceof IRuntimeModel) { if (ISearchable.class.equals(adapterType)) { - final AtomicReference<IPeerModel> node = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> node = new AtomicReference<IPeerNode>(); Runnable runnable = new Runnable() { @Override diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/dialogs/IntervalConfigDialog.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/dialogs/IntervalConfigDialog.java index bfa30f2d4..b9ba191b8 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/dialogs/IntervalConfigDialog.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/dialogs/IntervalConfigDialog.java @@ -29,7 +29,7 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.ui.activator.UIPlugin; import org.eclipse.tcf.te.tcf.processes.ui.internal.preferences.IPreferenceConsts; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; @@ -44,7 +44,7 @@ public class IntervalConfigDialog extends StatusDialog implements ModifyListener // The entered result private int result; // The parent element - private final IPeerModel node; + private final IPeerNode node; /** * Constructor @@ -52,7 +52,7 @@ public class IntervalConfigDialog extends StatusDialog implements ModifyListener * @param node The parent peer model node. Must not be <code>null</code>. * @param parent The parent shell or <code>null</code>. */ - public IntervalConfigDialog(IPeerModel node, Shell parent) { + public IntervalConfigDialog(IPeerNode node, Shell parent) { super(parent); Assert.isNotNull(node); this.node = node; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/properties/ContextPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/properties/ContextPage.java index 5a936adf3..cdc445cb9 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/properties/ContextPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/properties/ContextPage.java @@ -25,7 +25,7 @@ import org.eclipse.tcf.services.ISysMonitor; import org.eclipse.tcf.services.ISysMonitor.SysMonitorContext; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.ui.interfaces.IProcessMonitorUIDelegate; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; @@ -59,9 +59,9 @@ public class ContextPage extends PropertyPage { Assert.isTrue(!Protocol.isDispatchThread()); Protocol.invokeAndWait(runnable); - IPeerModel peerModel = (IPeerModel)node.getAdapter(IPeerModel.class); - IUIService service = peerModel != null ? ServiceManager.getInstance().getService(peerModel, IUIService.class) : null; - IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerModel, IProcessMonitorUIDelegate.class) : null; + IPeerNode peerNode = (IPeerNode)node.getAdapter(IPeerNode.class); + IUIService service = peerNode != null ? ServiceManager.getInstance().getService(peerNode, IUIService.class) : null; + IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerNode, IProcessMonitorUIDelegate.class) : null; SysMonitorContext context = ctx.get(); createField(Messages.ContextPage_File, context == null ? null : context.getFile(), page); @@ -73,11 +73,11 @@ public class ContextPage extends PropertyPage { createField(Messages.ContextPage_ID, context == null ? null : context.getID(), page); createField(Messages.ContextPage_ParentID, context == null ? null : context.getParentID(), page); createField(Messages.ContextPage_GroupID, context == null || context.getPGRP() < 0 ? null : Long.valueOf(context.getPGRP()), page); - String label = Messages.getStringDelegated(peerModel, "ContextPage_PID"); //$NON-NLS-1$ + String label = Messages.getStringDelegated(peerNode, "ContextPage_PID"); //$NON-NLS-1$ Long v = context == null || context.getPID() < 0 ? null : Long.valueOf(context.getPID()); String value = delegate != null && v != null ? delegate.getText(node, "PID", v.toString()) : null; //$NON-NLS-1$ createField(label != null ? label : Messages.ContextPage_PID, value != null ? value : v, page); - label = Messages.getStringDelegated(peerModel, "ContextPage_PPID"); //$NON-NLS-1$ + label = Messages.getStringDelegated(peerNode, "ContextPage_PPID"); //$NON-NLS-1$ v = context == null || context.getPPID() < 0 ? null : Long.valueOf(context.getPPID()); value = delegate != null && v != null ? delegate.getText(node, "PPID", v.toString()) : null; //$NON-NLS-1$ createField(label != null ? label : Messages.ContextPage_PPID, value != null ? value : v, page); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/properties/GeneralInformationPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/properties/GeneralInformationPage.java index a79e88e41..ecfc3bdbf 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/properties/GeneralInformationPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/properties/GeneralInformationPage.java @@ -27,7 +27,7 @@ import org.eclipse.tcf.services.ISysMonitor; import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.ui.interfaces.IProcessMonitorUIDelegate; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; @@ -50,9 +50,9 @@ public class GeneralInformationPage extends PropertyPage { node = (IProcessContextNode) element; - IPeerModel peerModel = (IPeerModel)node.getAdapter(IPeerModel.class); - IUIService service = peerModel != null ? ServiceManager.getInstance().getService(peerModel, IUIService.class) : null; - IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerModel, IProcessMonitorUIDelegate.class) : null; + IPeerNode peerNode = (IPeerNode)node.getAdapter(IPeerNode.class); + IUIService service = peerNode != null ? ServiceManager.getInstance().getService(peerNode, IUIService.class) : null; + IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerNode, IProcessMonitorUIDelegate.class) : null; final Map<String, Object> props = new HashMap<String, Object>(); @@ -77,15 +77,15 @@ public class GeneralInformationPage extends PropertyPage { createField(Messages.GeneralInformationPage_User, props.get(ISysMonitor.PROP_USERNAME), page); createSeparator(page); - String label = Messages.getStringDelegated(peerModel, "GeneralInformationPage_ProcessID"); //$NON-NLS-1$ + String label = Messages.getStringDelegated(peerNode, "GeneralInformationPage_ProcessID"); //$NON-NLS-1$ String value = delegate != null ? delegate.getText(node, "PID", (props.get(ISysMonitor.PROP_PID) != null ? props.get(ISysMonitor.PROP_PID).toString() : null)) : null; //$NON-NLS-1$ createField(label != null ? label : Messages.GeneralInformationPage_ProcessID, value != null ? value : props.get(ISysMonitor.PROP_PID), page); - label = Messages.getStringDelegated(peerModel, "GeneralInformationPage_ParentPID"); //$NON-NLS-1$ + label = Messages.getStringDelegated(peerNode, "GeneralInformationPage_ParentPID"); //$NON-NLS-1$ value = delegate != null ? delegate.getText(node, "PPID", (props.get(ISysMonitor.PROP_PPID) != null ? props.get(ISysMonitor.PROP_PPID).toString() : null)) : null; //$NON-NLS-1$ createField(label != null ? label : Messages.GeneralInformationPage_ParentPID, props.get(ISysMonitor.PROP_PPID), page); - label = Messages.getStringDelegated(peerModel, "GeneralInformationPage_InternalPID"); //$NON-NLS-1$ + label = Messages.getStringDelegated(peerNode, "GeneralInformationPage_InternalPID"); //$NON-NLS-1$ createField(label != null ? label : Messages.GeneralInformationPage_InternalPID, props.get(IProcesses.PROP_ID), page); - label = Messages.getStringDelegated(peerModel, "GeneralInformationPage_InternalPPID"); //$NON-NLS-1$ + label = Messages.getStringDelegated(peerNode, "GeneralInformationPage_InternalPPID"); //$NON-NLS-1$ createField(label != null ? label : Messages.GeneralInformationPage_InternalPPID, props.get(IProcesses.PROP_PARENTID), page); return page; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/BasicContextSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/BasicContextSection.java index 64a8aaf58..9531ba04b 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/BasicContextSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/BasicContextSection.java @@ -14,7 +14,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.services.ISysMonitor; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; import org.eclipse.tcf.te.tcf.ui.tabbed.BaseTitledSection; @@ -60,7 +60,7 @@ public class BasicContextSection extends BaseTitledSection { * @see org.eclipse.tcf.te.ui.views.tabbed.BaseTitledSection#updateData(org.eclipse.tcf.te.ui.interfaces.IPropertyChangeProvider) */ @Override - protected void updateInput(IPeerModelProvider input) { + protected void updateInput(IPeerNodeProvider input) { Assert.isTrue(input instanceof IProcessContextNode); final IProcessContextNode node = (IProcessContextNode) input; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/BasicInformationSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/BasicInformationSection.java index 4cbd54132..6a57b6d3f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/BasicInformationSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/BasicInformationSection.java @@ -14,7 +14,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.services.ISysMonitor; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; import org.eclipse.tcf.te.tcf.ui.tabbed.BaseTitledSection; @@ -58,7 +58,7 @@ public class BasicInformationSection extends BaseTitledSection { * @see org.eclipse.tcf.te.ui.views.tabbed.BaseTitledSection#updateData(org.eclipse.tcf.te.ui.interfaces.IPropertyChangeProvider) */ @Override - protected void updateInput(IPeerModelProvider input) { + protected void updateInput(IPeerNodeProvider input) { Assert.isTrue(input instanceof IProcessContextNode); final IProcessContextNode node = (IProcessContextNode) input; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/ContextIDSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/ContextIDSection.java index bb8637aa9..920a644ec 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/ContextIDSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/ContextIDSection.java @@ -17,8 +17,8 @@ import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.services.ISysMonitor; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.ui.interfaces.IProcessMonitorUIDelegate; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; @@ -79,10 +79,10 @@ public class ContextIDSection extends BaseTitledSection { } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.ui.tabbed.BaseTitledSection#updateInput(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider) + * @see org.eclipse.tcf.te.tcf.ui.tabbed.BaseTitledSection#updateInput(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider) */ @Override - protected void updateInput(IPeerModelProvider input) { + protected void updateInput(IPeerNodeProvider input) { Assert.isTrue(input instanceof IProcessContextNode); final IProcessContextNode node = (IProcessContextNode) input; this.node = node; @@ -103,9 +103,9 @@ public class ContextIDSection extends BaseTitledSection { */ @Override public void refresh() { - IPeerModel peerModel = (IPeerModel)node.getAdapter(IPeerModel.class); - IUIService service = peerModel != null ? ServiceManager.getInstance().getService(peerModel, IUIService.class) : null; - IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerModel, IProcessMonitorUIDelegate.class) : null; + IPeerNode peerNode = (IPeerNode)node.getAdapter(IPeerNode.class); + IUIService service = peerNode != null ? ServiceManager.getInstance().getService(peerNode, IUIService.class) : null; + IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerNode, IProcessMonitorUIDelegate.class) : null; String label = delegate != null ? delegate.getMessage("ContextIDSection_PID") : null; //$NON-NLS-1$ if (label != null) SWTControlUtil.setText(pidLabel, label); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/IDSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/IDSection.java index 948525b3a..72ace325c 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/IDSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/IDSection.java @@ -17,8 +17,8 @@ import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.services.ISysMonitor; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.ui.interfaces.IProcessMonitorUIDelegate; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; @@ -72,7 +72,7 @@ public class IDSection extends BaseTitledSection { * @see org.eclipse.tcf.te.ui.views.tabbed.BaseTitledSection#updateData(org.eclipse.tcf.te.ui.interfaces.IPropertyChangeProvider) */ @Override - protected void updateInput(IPeerModelProvider input) { + protected void updateInput(IPeerNodeProvider input) { Assert.isTrue(input instanceof IProcessContextNode); final IProcessContextNode node = (IProcessContextNode) input; this.node = node; @@ -93,9 +93,9 @@ public class IDSection extends BaseTitledSection { */ @Override public void refresh() { - IPeerModel peerModel = (IPeerModel)node.getAdapter(IPeerModel.class); - IUIService service = peerModel != null ? ServiceManager.getInstance().getService(peerModel, IUIService.class) : null; - IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerModel, IProcessMonitorUIDelegate.class) : null; + IPeerNode peerNode = (IPeerNode)node.getAdapter(IPeerNode.class); + IUIService service = peerNode != null ? ServiceManager.getInstance().getService(peerNode, IUIService.class) : null; + IProcessMonitorUIDelegate delegate = service != null ? service.getDelegate(peerNode, IProcessMonitorUIDelegate.class) : null; String label = delegate != null ? delegate.getMessage("IDSection_Title") : null; //$NON-NLS-1$ if (label != null && section != null && !section.isDisposed()) section.setText(label); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/MemorySection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/MemorySection.java index 674962f3a..b58ffacb3 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/MemorySection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/internal/tabbed/MemorySection.java @@ -14,7 +14,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.services.ISysMonitor; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.ui.nls.Messages; import org.eclipse.tcf.te.tcf.ui.tabbed.BaseTitledSection; @@ -57,7 +57,7 @@ public class MemorySection extends BaseTitledSection { * @see org.eclipse.tcf.te.ui.views.tabbed.BaseTitledSection#updateData(org.eclipse.tcf.te.ui.interfaces.IPropertyChangeProvider) */ @Override - protected void updateInput(IPeerModelProvider input) { + protected void updateInput(IPeerNodeProvider input) { Assert.isTrue(input instanceof IProcessContextNode); final IProcessContextNode node = (IProcessContextNode) input; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/navigator/runtime/ContentProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/navigator/runtime/ContentProvider.java index cc9bca283..ed42eb963 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/navigator/runtime/ContentProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/navigator/runtime/ContentProvider.java @@ -30,7 +30,7 @@ import org.eclipse.tcf.te.runtime.model.interfaces.contexts.IAsyncRefreshableCtx import org.eclipse.tcf.te.runtime.model.interfaces.contexts.IAsyncRefreshableCtx.QueryState; import org.eclipse.tcf.te.runtime.model.interfaces.contexts.IAsyncRefreshableCtx.QueryType; import org.eclipse.tcf.te.tcf.core.model.interfaces.services.IModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.ModelManager; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IPendingOperationNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; @@ -57,8 +57,8 @@ public class ContentProvider implements ITreeContentProvider { // If the parent element is a peer model node, than return // the children of the corresponding runtime model. - if (parentElement instanceof IPeerModel) { - IRuntimeModel model = ModelManager.getRuntimeModel((IPeerModel)parentElement); + if (parentElement instanceof IPeerNode) { + IRuntimeModel model = ModelManager.getRuntimeModel((IPeerNode)parentElement); return isRuntimeModelNodeVisible() ? new Object[] { model } : getChildren(model); } @@ -280,7 +280,7 @@ public class ContentProvider implements ITreeContentProvider { } } } - else if (element instanceof IPeerModel) { + else if (element instanceof IPeerNode) { hasChildren = true; } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/navigator/runtime/LabelProviderDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/navigator/runtime/LabelProviderDelegate.java index b3ee3db2f..5ac1825e0 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/navigator/runtime/LabelProviderDelegate.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/navigator/runtime/LabelProviderDelegate.java @@ -16,7 +16,7 @@ import org.eclipse.swt.graphics.Image; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode; import org.eclipse.tcf.te.runtime.services.interfaces.delegates.ILabelProviderDelegate; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.IProcessContextNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; import org.eclipse.tcf.te.tcf.processes.ui.activator.UIPlugin; @@ -35,7 +35,7 @@ public class LabelProviderDelegate extends AbstractLabelProviderDelegate impleme @Override public String getText(final Object element) { if (element instanceof IRuntimeModel) { - final AtomicReference<IPeerModel> node = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> node = new AtomicReference<IPeerNode>(); Runnable runnable = new Runnable() { @Override diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessSearchable.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessSearchable.java index 06b26b022..964856b11 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessSearchable.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/search/ProcessSearchable.java @@ -18,7 +18,7 @@ import org.eclipse.osgi.util.NLS; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.processes.core.model.interfaces.runtime.IRuntimeModel; import org.eclipse.tcf.te.tcf.processes.ui.interfaces.IProcessMonitorUIDelegate; import org.eclipse.tcf.te.tcf.processes.ui.navigator.runtime.LabelProviderDelegate; @@ -39,7 +39,7 @@ public class ProcessSearchable extends CompositeSearchable { * * @param node The peer model node context. Must not be <code>null</code>. */ - public ProcessSearchable(IPeerModel node) { + public ProcessSearchable(IPeerNode node) { super(); IUIService service = ServiceManager.getInstance().getService(node, IUIService.class); @@ -56,7 +56,7 @@ public class ProcessSearchable extends CompositeSearchable { */ @Override public String getSearchTitle(final Object rootElement) { - final AtomicReference<IPeerModel> node = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> node = new AtomicReference<IPeerNode>(); if (rootElement instanceof IRuntimeModel) { Runnable runnable = new Runnable() { @@ -72,7 +72,7 @@ public class ProcessSearchable extends CompositeSearchable { else Protocol.invokeAndWait(runnable); } else if (rootElement != null) { - node.set(rootElement instanceof IAdaptable ? (IPeerModel)((IAdaptable)rootElement).getAdapter(IPeerModel.class) : (IPeerModel)Platform.getAdapterManager().getAdapter(rootElement, IPeerModel.class)); + node.set(rootElement instanceof IAdaptable ? (IPeerNode)((IAdaptable)rootElement).getAdapter(IPeerNode.class) : (IPeerNode)Platform.getAdapterManager().getAdapter(rootElement, IPeerNode.class)); } String label = Messages.getStringDelegated(node.get(), "ProcessSearchable_SearchTitle"); //$NON-NLS-1$ @@ -85,7 +85,7 @@ public class ProcessSearchable extends CompositeSearchable { @Override public String getSearchMessage(final Object rootElement) { if (rootElement == null || rootElement instanceof IRuntimeModel) { - final AtomicReference<IPeerModel> node = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> node = new AtomicReference<IPeerNode>(); Runnable runnable = new Runnable() { @Override @@ -103,7 +103,7 @@ public class ProcessSearchable extends CompositeSearchable { return label != null ? label : Messages.ProcessSearchable_PromptFindInProcessList; } - IPeerModel node = rootElement instanceof IAdaptable ? (IPeerModel)((IAdaptable)rootElement).getAdapter(IPeerModel.class) : (IPeerModel)Platform.getAdapterManager().getAdapter(rootElement, IPeerModel.class); + IPeerNode node = rootElement instanceof IAdaptable ? (IPeerNode)((IAdaptable)rootElement).getAdapter(IPeerNode.class) : (IPeerNode)Platform.getAdapterManager().getAdapter(rootElement, IPeerNode.class); String label = Messages.getStringDelegated(node, "ProcessSearchable_PromptFindUnderProcess"); //$NON-NLS-1$ String message = label != null ? label : Messages.ProcessSearchable_PromptFindUnderProcess; String rootName = "\"" + getElementName(rootElement) + "\""; //$NON-NLS-1$//$NON-NLS-2$ @@ -116,7 +116,7 @@ public class ProcessSearchable extends CompositeSearchable { */ @Override public String getCustomMessage(final Object rootElement, final String key) { - final AtomicReference<IPeerModel> node = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> node = new AtomicReference<IPeerNode>(); if (rootElement instanceof IRuntimeModel) { Runnable runnable = new Runnable() { @@ -132,7 +132,7 @@ public class ProcessSearchable extends CompositeSearchable { else Protocol.invokeAndWait(runnable); } else if (rootElement != null) { - node.set(rootElement instanceof IAdaptable ? (IPeerModel)((IAdaptable)rootElement).getAdapter(IPeerModel.class) : (IPeerModel)Platform.getAdapterManager().getAdapter(rootElement, IPeerModel.class)); + node.set(rootElement instanceof IAdaptable ? (IPeerNode)((IAdaptable)rootElement).getAdapter(IPeerNode.class) : (IPeerNode)Platform.getAdapterManager().getAdapter(rootElement, IPeerNode.class)); } String message = Messages.getStringDelegated(node.get(), key); @@ -147,7 +147,7 @@ public class ProcessSearchable extends CompositeSearchable { */ private String getElementName(final Object rootElement) { if (rootElement == null || rootElement instanceof IRuntimeModel) { - final AtomicReference<IPeerModel> node = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> node = new AtomicReference<IPeerNode>(); Runnable runnable = new Runnable() { @Override diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.services.contexts/src/org/eclipse/tcf/te/tcf/services/contexts/internal/AdapterFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.services.contexts/src/org/eclipse/tcf/te/tcf/services/contexts/internal/AdapterFactory.java index 144f56895..77d4174f0 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.services.contexts/src/org/eclipse/tcf/te/tcf/services/contexts/internal/AdapterFactory.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.services.contexts/src/org/eclipse/tcf/te/tcf/services/contexts/internal/AdapterFactory.java @@ -1,92 +1,92 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.services.contexts.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.tcf.protocol.IPeer;
-import org.eclipse.tcf.protocol.Protocol;
-import org.eclipse.tcf.te.runtime.interfaces.IDisposable;
-import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-import org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter;
-import org.eclipse.tcf.te.tcf.locator.model.Model;
-import org.eclipse.tcf.te.tcf.services.contexts.interfaces.IContextService;
-
-/**
- * Context service adapter factory implementation.
- */
-public class AdapterFactory implements IAdapterFactory {
- // Maintain a map of contexts service adapters per peer
- /* default */ Map<IPeer, IContextService> adapters = new HashMap<IPeer, IContextService>();
-
- private static final Class<?>[] CLASSES = new Class[] {
- IContextService.class
- };
-
- /**
- * Constructor.
- */
- public AdapterFactory() {
- final IModelListener listener = new ModelAdapter() {
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter#locatorModelChanged(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel, org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel, boolean)
- */
- @Override
- public void locatorModelChanged(ILocatorModel model, IPeerModel peer, boolean added) {
- // If a peer gets removed, remove the context service proxy
- if (peer != null && peer.getPeer() != null && !added) {
- IContextService adapter = adapters.remove(peer.getPeer());
- if (adapter instanceof IDisposable) ((IDisposable)adapter).dispose();
- }
- }
- };
-
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- Model.getModel().addListener(listener);
- }
- };
-
- if (Protocol.isDispatchThread()) runnable.run();
- else Protocol.invokeAndWait(runnable);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
- */
- @Override
- public Object getAdapter(Object adaptableObject, Class adapterType) {
- if (adaptableObject instanceof IPeer) {
- // Lookup the adapter
- IContextService adapter = adapters.get(adaptableObject);
- // No adapter yet -> create a new one for this peer
- if (adapter == null) {
- adapter = new ContextServiceAdapter((IPeer)adaptableObject);
- adapters.put((IPeer)adaptableObject, adapter);
- }
- return adapter;
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
- */
- @Override
- public Class[] getAdapterList() {
- return CLASSES;
- }
-
-}
+/******************************************************************************* + * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.services.contexts.internal; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.core.runtime.IAdapterFactory; +import org.eclipse.tcf.protocol.IPeer; +import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.runtime.interfaces.IDisposable; +import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter; +import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.services.contexts.interfaces.IContextService; + +/** + * Context service adapter factory implementation. + */ +public class AdapterFactory implements IAdapterFactory { + // Maintain a map of contexts service adapters per peer + /* default */ Map<IPeer, IContextService> adapters = new HashMap<IPeer, IContextService>(); + + private static final Class<?>[] CLASSES = new Class[] { + IContextService.class + }; + + /** + * Constructor. + */ + public AdapterFactory() { + final IModelListener listener = new ModelAdapter() { + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter#locatorModelChanged(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel, org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode, boolean) + */ + @Override + public void locatorModelChanged(IPeerModel model, IPeerNode peer, boolean added) { + // If a peer gets removed, remove the context service proxy + if (peer != null && peer.getPeer() != null && !added) { + IContextService adapter = adapters.remove(peer.getPeer()); + if (adapter instanceof IDisposable) ((IDisposable)adapter).dispose(); + } + } + }; + + Runnable runnable = new Runnable() { + @Override + public void run() { + Model.getModel().addListener(listener); + } + }; + + if (Protocol.isDispatchThread()) runnable.run(); + else Protocol.invokeAndWait(runnable); + } + + /* (non-Javadoc) + * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class) + */ + @Override + public Object getAdapter(Object adaptableObject, Class adapterType) { + if (adaptableObject instanceof IPeer) { + // Lookup the adapter + IContextService adapter = adapters.get(adaptableObject); + // No adapter yet -> create a new one for this peer + if (adapter == null) { + adapter = new ContextServiceAdapter((IPeer)adaptableObject); + adapters.put((IPeer)adaptableObject, adapter); + } + return adapter; + } + return null; + } + + /* (non-Javadoc) + * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList() + */ + @Override + public Class[] getAdapterList() { + return CLASSES; + } + +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/plugin.xml index 03a38ec60..9316b0575 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/plugin.xml @@ -30,7 +30,7 @@ <with variable="selection"> <count value="1"/> <iterate operator="and" ifEmpty="false"> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </iterate> </with> </enablement> diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/src/org/eclipse/tcf/te/tcf/terminals/ui/launcher/TerminalsLauncherDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/src/org/eclipse/tcf/te/tcf/terminals/ui/launcher/TerminalsLauncherDelegate.java index 651cc2231..78575e471 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/src/org/eclipse/tcf/te/tcf/terminals/ui/launcher/TerminalsLauncherDelegate.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/src/org/eclipse/tcf/te/tcf/terminals/ui/launcher/TerminalsLauncherDelegate.java @@ -19,7 +19,7 @@ import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.services.interfaces.constants.ITerminalsConnectorConstants; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.terminals.core.interfaces.launcher.ITerminalsLauncher; import org.eclipse.tcf.te.tcf.terminals.core.launcher.TerminalsLauncher; import org.eclipse.tcf.te.tcf.terminals.ui.controls.TerminalsWizardConfigurationPanel; @@ -62,16 +62,16 @@ public class TerminalsLauncherDelegate extends AbstractLauncherDelegate { ISelection selection = (ISelection)properties.getProperty(ITerminalsConnectorConstants.PROP_SELECTION); if (selection instanceof IStructuredSelection && !selection.isEmpty()) { Object element = ((IStructuredSelection)selection).getFirstElement(); - if (element instanceof IPeerModel) { - final IPeerModel peerModel = (IPeerModel)element; + if (element instanceof IPeerNode) { + final IPeerNode peerNode = (IPeerNode)element; final AtomicReference<IPeer> peer = new AtomicReference<IPeer>(); if (Protocol.isDispatchThread()) { - peer.set(peerModel.getPeer()); + peer.set(peerNode.getPeer()); } else { Protocol.invokeAndWait(new Runnable() { @Override public void run() { - peer.set(peerModel.getPeer()); + peer.set(peerNode.getPeer()); } }); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/src/org/eclipse/tcf/te/tcf/terminals/ui/launcher/TerminalsMementoHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/src/org/eclipse/tcf/te/tcf/terminals/ui/launcher/TerminalsMementoHandler.java index 4ee81b551..cffd6ed86 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/src/org/eclipse/tcf/te/tcf/terminals/ui/launcher/TerminalsMementoHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.terminals.ui/src/org/eclipse/tcf/te/tcf/terminals/ui/launcher/TerminalsMementoHandler.java @@ -18,9 +18,9 @@ import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.services.interfaces.constants.ITerminalsConnectorConstants; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.ui.terminals.interfaces.IMementoHandler; import org.eclipse.ui.IMemento; @@ -46,9 +46,9 @@ public class TerminalsMementoHandler implements IMementoHandler { ISelection selection = (ISelection)properties.getProperty(ITerminalsConnectorConstants.PROP_SELECTION); if (selection instanceof IStructuredSelection && !selection.isEmpty()) { Object element = ((IStructuredSelection)selection).getFirstElement(); - if (element instanceof IPeerModel) { - IPeerModel peerModel = (IPeerModel)element; - memento.putString("peerID", peerModel.getPeerId()); //$NON-NLS-1$ + if (element instanceof IPeerNode) { + IPeerNode peerNode = (IPeerNode)element; + memento.putString("peerID", peerNode.getPeerId()); //$NON-NLS-1$ } } } @@ -66,13 +66,13 @@ public class TerminalsMementoHandler implements IMementoHandler { final String peerID = memento.getString("peerID"); //$NON-NLS-1$ if (peerID != null) { - final ILocatorModel model = Model.getModel(); + final IPeerModel model = Model.getModel(); Assert.isNotNull(model); - final AtomicReference<IPeerModel> peerModel = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> peerNode = new AtomicReference<IPeerNode>(); Runnable runnable = new Runnable() { @Override public void run() { - peerModel.set(model.getService(ILocatorModelLookupService.class).lkupPeerModelById(peerID)); + peerNode.set(model.getService(IPeerModelLookupService.class).lkupPeerModelById(peerID)); } }; Assert.isTrue(!Protocol.isDispatchThread()); @@ -80,14 +80,14 @@ public class TerminalsMementoHandler implements IMementoHandler { // If the node is null, this might mean that the peer to restore is a dynamically discovered peer. // In this case, we have to wait a little bit to give the locator service the chance to sync. - if (peerModel.get() == null) { + if (peerNode.get() == null) { // Sleep shortly try { Thread.sleep(300); } catch (InterruptedException e) {} Protocol.invokeAndWait(runnable); } - if (peerModel.get() != null) { - properties.setProperty(ITerminalsConnectorConstants.PROP_SELECTION, new StructuredSelection(peerModel.get())); + if (peerNode.get() != null) { + properties.setProperty(ITerminalsConnectorConstants.PROP_SELECTION, new StructuredSelection(peerNode.get())); } } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/ScriptPad.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/ScriptPad.java index b0f3fee33..adcf443f2 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/ScriptPad.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/ScriptPad.java @@ -58,7 +58,7 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Menu; import org.eclipse.tcf.te.runtime.statushandler.StatusHandlerUtil; import org.eclipse.tcf.te.runtime.utils.StatusHelper; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.ui.views.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.ui.views.nls.Messages; import org.eclipse.tcf.te.tcf.ui.views.scriptpad.actions.CopyAction; @@ -91,7 +91,7 @@ public class ScriptPad extends ViewPart implements ISelectionProvider, Selection private final List<ISelectionChangedListener> listeners = new ArrayList<ISelectionChangedListener>(); // Reference to the selected peer model - /* default */ IPeerModel peerModel; + /* default */ IPeerNode peerNode; // References to the global action handlers private CutAction cutHandler; @@ -392,10 +392,10 @@ public class ScriptPad extends ViewPart implements ISelectionProvider, Selection label.append(" - "); //$NON-NLS-1$ - if (peerModel == null) { + if (peerNode == null) { label.append("<no peer>"); //$NON-NLS-1$ } else { - PeerAction action = new PeerAction(this, peerModel); + PeerAction action = new PeerAction(this, peerNode); label.append(action.getText()); } @@ -421,10 +421,10 @@ public class ScriptPad extends ViewPart implements ISelectionProvider, Selection /** * Sets the peer model. * - * @param peerModel The peer model or <code>null</code>. + * @param peerNode The peer model or <code>null</code>. */ - public void setPeerModel(IPeerModel peerModel) { - this.peerModel = peerModel; + public void setPeerModel(IPeerNode peerNode) { + this.peerNode = peerNode; // Update the head label updateHeadLabel(); // Update the action bars @@ -444,8 +444,8 @@ public class ScriptPad extends ViewPart implements ISelectionProvider, Selection * * @return The associated peer model. */ - public IPeerModel getPeerModel() { - return peerModel; + public IPeerNode getPeerModel() { + return peerNode; } /** diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PeerAction.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PeerAction.java index 7882de782..5f87474a2 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PeerAction.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PeerAction.java @@ -11,7 +11,7 @@ package org.eclipse.tcf.te.tcf.ui.views.scriptpad.actions; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.action.Action; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.ui.views.scriptpad.ScriptPad; import org.eclipse.tcf.te.ui.views.navigator.DelegatingLabelProvider; import org.eclipse.ui.IViewPart; @@ -24,7 +24,7 @@ public class PeerAction extends Action { private final static DelegatingLabelProvider delegate = new DelegatingLabelProvider(); // Reference to the peer model - private IPeerModel peerModel; + private IPeerNode peerNode; // Reference to the parent view part private IViewPart view; @@ -32,17 +32,17 @@ public class PeerAction extends Action { * Constructor. * * @param view The parent view part. Must not be <code>null</code>. - * @param peerModel The peer model. Must not be <code>null</code>. + * @param peerNode The peer model. Must not be <code>null</code>. */ - public PeerAction(IViewPart view, IPeerModel peerModel) { + public PeerAction(IViewPart view, IPeerNode peerNode) { super("", AS_CHECK_BOX); //$NON-NLS-1$ - Assert.isNotNull(peerModel); - this.peerModel = peerModel; + Assert.isNotNull(peerNode); + this.peerNode = peerNode; - String label = delegate.getText(peerModel); + String label = delegate.getText(peerNode); if (label != null) { - setText(delegate.decorateText(label, peerModel)); + setText(delegate.decorateText(label, peerNode)); } Assert.isNotNull(view); @@ -58,7 +58,7 @@ public class PeerAction extends Action { // Pass on the selected peer model to the parent view if (view instanceof ScriptPad) { - ((ScriptPad)view).setPeerModel(peerModel); + ((ScriptPad)view).setPeerModel(peerNode); } } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PeersSubMenuAction.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PeersSubMenuAction.java index 1075fb32b..436c22425 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PeersSubMenuAction.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PeersSubMenuAction.java @@ -26,8 +26,8 @@ import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.views.scriptpad.ScriptPad; @@ -60,10 +60,10 @@ public class PeersSubMenuAction extends Action implements IMenuCreator, IViewAct // Create and register the locator model listener listener = new ModelAdapter() { @Override - public void locatorModelChanged(ILocatorModel model, IPeerModel peer, boolean added) { + public void locatorModelChanged(IPeerModel model, IPeerNode peer, boolean added) { // Re-evaluate the enablement if (actionProxy != null) { - final IPeerModel[] peers = Model.getModel().getPeers(); + final IPeerNode[] peers = Model.getModel().getPeers(); actionProxy.setEnabled(peers != null && peers.length > 0); // If the peer is not set to the view yet, but the action get's @@ -119,7 +119,7 @@ public class PeersSubMenuAction extends Action implements IMenuCreator, IViewAct // Determine the enablement. The action is disabled // if no peers are available. - IPeerModel[] peers = Model.getModel().getPeers(); + IPeerNode[] peers = Model.getModel().getPeers(); if (peers != null && peers.length > 0) { action.setEnabled(true); if (view instanceof ScriptPad) ((ScriptPad)view).setPeerModel(peers[0]); @@ -204,14 +204,14 @@ public class PeersSubMenuAction extends Action implements IMenuCreator, IViewAct } // Get the selected peer model - IPeerModel selected = null; + IPeerNode selected = null; if (view instanceof ScriptPad) selected = ((ScriptPad)view).getPeerModel(); boolean selectFirst = selected == null; - IPeerModel[] peers = Model.getModel().getPeers(); + IPeerNode[] peers = Model.getModel().getPeers(); if (peers != null && peers.length > 0) { - for (IPeerModel peer : peers) { + for (IPeerNode peer : peers) { if (isValueAdd(peer)) continue; Action action = new PeerAction(view, peer); if (selectFirst) { @@ -235,17 +235,17 @@ public class PeersSubMenuAction extends Action implements IMenuCreator, IViewAct /** * Determines if the given peer model node is a value-add. * - * @param peerModel The peer model node. Must not be <code>null</code>. + * @param peerNode The peer model node. Must not be <code>null</code>. * @return <code>True</code> if the peer model node is value-add, <code>false</code> otherwise. */ - /* default */ final boolean isValueAdd(final IPeerModel peerModel) { - Assert.isNotNull(peerModel); + /* default */ final boolean isValueAdd(final IPeerNode peerNode) { + Assert.isNotNull(peerNode); final AtomicBoolean isValueAdd = new AtomicBoolean(); Runnable runnable = new Runnable() { @Override public void run() { - String value = peerModel.getPeer().getAttributes().get("ValueAdd"); //$NON-NLS-1$ + String value = peerNode.getPeer().getAttributes().get("ValueAdd"); //$NON-NLS-1$ boolean isValueAddValue = value != null && ("1".equals(value.trim()) || Boolean.parseBoolean(value.trim())); //$NON-NLS-1$ isValueAdd.set(isValueAddValue); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PlayAction.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PlayAction.java index a4c4eabda..692e5637f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PlayAction.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui.views/src/org/eclipse/tcf/te/tcf/ui/views/scriptpad/actions/PlayAction.java @@ -24,7 +24,7 @@ import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; import org.eclipse.tcf.te.runtime.statushandler.StatusHandlerUtil; import org.eclipse.tcf.te.tcf.core.scripting.interfaces.IScriptLauncherProperties; import org.eclipse.tcf.te.tcf.core.scripting.launcher.ScriptLauncher; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.ui.views.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.ui.views.nls.Messages; import org.eclipse.tcf.te.tcf.ui.views.scriptpad.ScriptPad; @@ -98,21 +98,21 @@ public class PlayAction extends Action implements IViewActionDelegate, IActionDe @Override public void run() { String script = null; - IPeerModel peerModel = null; + IPeerNode peerNode = null; if (view instanceof ScriptPad && ((ScriptPad)view).getStyledText() != null) { script = ((ScriptPad)view).getStyledText().getText(); - peerModel = ((ScriptPad)view).getPeerModel(); + peerNode = ((ScriptPad)view).getPeerModel(); } - if (script != null && !"".equals(script) && peerModel != null) { //$NON-NLS-1$ + if (script != null && !"".equals(script) && peerNode != null) { //$NON-NLS-1$ final ScriptLauncher launcher = new ScriptLauncher(); IPropertiesContainer properties = new PropertiesContainer(); properties.setProperty(IScriptLauncherProperties.PROP_SCRIPT, script); final AtomicReference<IPeer> peer = new AtomicReference<IPeer>(); - final IPeerModel finPeerModel = peerModel; + final IPeerNode finPeerModel = peerNode; Runnable runnable = new Runnable() { @Override public void run() { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/plugin.xml index e2277a9d2..242b3669d 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/plugin.xml @@ -5,7 +5,7 @@ <!-- Adapter factory contributions --> <extension point="org.eclipse.core.runtime.adapters"> <factory - adaptableType="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel" + adaptableType="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode" class="org.eclipse.tcf.te.tcf.ui.internal.adapters.AdapterFactory"> <adapter type="org.eclipse.jface.viewers.ILabelProvider"/> <adapter type="org.eclipse.ui.IPersistableElement"/> @@ -15,7 +15,7 @@ <factory adaptableType="org.eclipse.tcf.te.ui.views.editor.EditorInput" class="org.eclipse.tcf.te.tcf.ui.internal.adapters.AdapterFactory"> - <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <adapter type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <adapter type="org.eclipse.tcf.te.ui.views.interfaces.IEditorSaveAsAdapter"/> </factory> </extension> @@ -23,7 +23,7 @@ <!-- Element factory contributions --> <extension point="org.eclipse.ui.elementFactories"> <factory - class="org.eclipse.tcf.te.tcf.ui.internal.adapters.PeerModelFactory" + class="org.eclipse.tcf.te.tcf.ui.internal.adapters.PeerNodeFactory" id="org.eclipse.tcf.te.ui.views.peerFactory"> </factory> </extension> @@ -49,7 +49,7 @@ id="org.eclipse.tcf.te.tcf.ui.propertyTester.simulator" namespace="org.eclipse.tcf.te.tcf.ui" properties="isValidSimulatorConfig" - type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> </propertyTester> </extension> @@ -75,7 +75,7 @@ class="org.eclipse.tcf.te.tcf.ui.navigator.events.EventListener"> <eventSourceType bundleId="org.eclipse.tcf.te.tcf.locator" - class="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + class="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> </eventSourceType> </eventListener> </extension> @@ -107,13 +107,13 @@ <or> <instanceof value="org.eclipse.tcf.te.ui.views.interfaces.IRoot"/> <instanceof value="org.eclipse.tcf.te.ui.views.interfaces.ICategory"/> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <instanceof value="org.eclipse.tcf.te.tcf.ui.navigator.nodes.PeerRedirectorGroupNode"/> </or> </triggerPoints> <possibleChildren> <or> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <instanceof value="org.eclipse.tcf.te.tcf.ui.navigator.nodes.PeerRedirectorGroupNode"/> </or> </possibleChildren> @@ -126,7 +126,7 @@ <enablement> <or> <and> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <test property="org.eclipse.tcf.te.tcf.locator.isOfType" value="null"/> </and> <and> @@ -177,7 +177,7 @@ id="org.eclipse.tcf.te.tcf.ui.peerLabelProviderDelegate"> <enablement> <or> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <instanceof value="org.eclipse.tcf.protocol.IPeer"/> <instanceof value="org.eclipse.tcf.te.tcf.ui.navigator.nodes.PeerRedirectorGroupNode"/> </or> @@ -299,7 +299,7 @@ insertBefore="first"> <enablement> <with variable="activeEditorInput"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="org.eclipse.tcf.te.tcf.locator.isOfType" value="null"/> </adapt> </with> @@ -335,7 +335,7 @@ <with variable="selection"> <count value="+"/> <iterate operator="and" ifEmpty="false"> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </iterate> </with> </visibleWhen> @@ -353,7 +353,7 @@ <count value="1"/> <iterate operator="and" ifEmpty="false"> <and> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <test property="org.eclipse.tcf.te.tcf.locator.isStaticPeer" value="true"/> </and> </iterate> @@ -372,7 +372,7 @@ <count value="+"/> <iterate operator="and" ifEmpty="false"> <and> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <or> <not> <test @@ -397,7 +397,7 @@ <with variable="selection"> <count value="1"/> <iterate operator="and" ifEmpty="false"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <or> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="RunControl"/> <test property="org.eclipse.tcf.te.tcf.locator.hasOfflineService" value="RunControl"/> @@ -506,7 +506,7 @@ <activeWhen> <with variable="selection"> <iterate operator="and" ifEmpty="false"> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </iterate> </with> </activeWhen> @@ -523,7 +523,7 @@ <activeWhen> <with variable="selection"> <iterate operator="and" ifEmpty="false"> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </iterate> </with> </activeWhen> @@ -532,7 +532,7 @@ <count value="1"/> <iterate operator="and" ifEmpty="false"> <and> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> <test property="org.eclipse.tcf.te.tcf.locator.isStaticPeer" value="true"/> </and> </iterate> @@ -546,7 +546,7 @@ <activeWhen> <with variable="selection"> <iterate operator="and" ifEmpty="false"> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </iterate> </with> </activeWhen> @@ -554,8 +554,8 @@ <with variable="selection"> <iterate operator="and" ifEmpty="false"> <and> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> </and> </iterate> </with> @@ -568,7 +568,7 @@ <activeWhen> <with variable="systemManagerViewSelection"> <iterate operator="and" ifEmpty="false"> - <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </iterate> </with> </activeWhen> @@ -576,7 +576,7 @@ <with variable="systemManagerViewSelection"> <count value="1"/> <iterate operator="and" ifEmpty="false"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="RunControl"/> <test property="org.eclipse.tcf.te.launch.core.isLaunched" value="false"/> </adapt> @@ -589,12 +589,12 @@ class="org.eclipse.tcf.te.tcf.ui.handler.StartDebugCommandHandler"> <activeWhen> <with variable="activeEditorInput"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"/> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> </with> </activeWhen> <enabledWhen> <with variable="activeEditorInput"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="RunControl"/> <test property="org.eclipse.tcf.te.launch.core.isLaunched" value="false"/> </adapt> diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/actions/AbstractPeerTypeToolbarAction.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/actions/AbstractPeerTypeToolbarAction.java index e3e7256ae..48be9247c 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/actions/AbstractPeerTypeToolbarAction.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/actions/AbstractPeerTypeToolbarAction.java @@ -40,11 +40,11 @@ import org.eclipse.tcf.te.runtime.events.ChangeEvent; import org.eclipse.tcf.te.runtime.events.EventManager; import org.eclipse.tcf.te.runtime.interfaces.events.IEventListener; import org.eclipse.tcf.te.runtime.persistence.history.HistoryManager; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; -import org.eclipse.tcf.te.tcf.ui.dialogs.AgentSelectionDialog; +import org.eclipse.tcf.te.tcf.ui.dialogs.PeerSelectionDialog; import org.eclipse.tcf.te.ui.views.editor.EditorInput; import org.eclipse.tcf.te.ui.views.interfaces.IUIConstants; import org.eclipse.tcf.te.ui.views.navigator.ViewerSorter; @@ -134,12 +134,12 @@ public abstract class AbstractPeerTypeToolbarAction extends Action implements IA if (e.getSource() instanceof HistoryManager && getPeerTypeId().equals(e.getNewValue())) { recreateMenuCtlParent.set(true); recreateMenuMenuParent.set(true); - IPeerModel peerModel = getPeerModel(HistoryManager.getInstance().getFirst(getPeerTypeId())); + IPeerNode peerNode = getPeerModel(HistoryManager.getInstance().getFirst(getPeerTypeId())); if (action != null) { - if (peerModel != null) { - ILabelProvider labelProvider = getLabelProvider(peerModel); + if (peerNode != null) { + ILabelProvider labelProvider = getLabelProvider(peerNode); if (labelProvider != null) { - action.setToolTipText("Open " + labelProvider.getText(peerModel)); //$NON-NLS-1$ + action.setToolTipText("Open " + labelProvider.getText(peerNode)); //$NON-NLS-1$ return; } @@ -200,16 +200,16 @@ public abstract class AbstractPeerTypeToolbarAction extends Action implements IA }); } - private IPeerModel getPeerModel(final String peerId) { + private IPeerNode getPeerModel(final String peerId) { if (peerId != null) { - final AtomicReference<IPeerModel> peerModel = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> peerNode = new AtomicReference<IPeerNode>(); Runnable runnable = new Runnable() { @Override public void run() { - ILocatorModel model = Model.getModel(); + IPeerModel model = Model.getModel(); Assert.isNotNull(model); - peerModel.set(model.getService(ILocatorModelLookupService.class).lkupPeerModelById(peerId)); + peerNode.set(model.getService(IPeerModelLookupService.class).lkupPeerModelById(peerId)); } }; @@ -220,7 +220,7 @@ public abstract class AbstractPeerTypeToolbarAction extends Action implements IA Protocol.invokeAndWait(runnable); } - return peerModel.get(); + return peerNode.get(); } return null; @@ -234,20 +234,20 @@ public abstract class AbstractPeerTypeToolbarAction extends Action implements IA @SuppressWarnings("unused") protected void fillMenu(Menu menu) { int accelerator = 1; - List<IPeerModel> peerModels = new ArrayList<IPeerModel>(); + List<IPeerNode> peerNodes = new ArrayList<IPeerNode>(); for (String id : HistoryManager.getInstance().getHistory(getPeerTypeId())) { - IPeerModel peerModel = getPeerModel(id); - if (peerModel != null && !peerModels.contains(peerModel)) { - peerModels.add(peerModel); + IPeerNode peerNode = getPeerModel(id); + if (peerNode != null && !peerNodes.contains(peerNode)) { + peerNodes.add(peerNode); } } - for (final IPeerModel peerModel: peerModels) { - ILabelProvider labelProvider = getLabelProvider(peerModel); - String label = peerModel.getPeer().getName(); + for (final IPeerNode peerNode: peerNodes) { + ILabelProvider labelProvider = getLabelProvider(peerNode); + String label = peerNode.getPeer().getName(); if (labelProvider != null) { - label = labelProvider.getText(peerModel); + label = labelProvider.getText(peerNode); if (labelProvider instanceof ILabelDecorator) { - label = ((ILabelDecorator)labelProvider).decorateText(label, peerModel); + label = ((ILabelDecorator)labelProvider).decorateText(label, peerNode); } } Action action = new Action(label) { @@ -256,7 +256,7 @@ public abstract class AbstractPeerTypeToolbarAction extends Action implements IA // Get the active page IWorkbenchPage page = window.getActivePage(); // Create the editor input object - IEditorInput input = new EditorInput(peerModel); + IEditorInput input = new EditorInput(peerNode); try { // Opens the configuration editor page.openEditor(input, IUIConstants.ID_EDITOR); @@ -266,7 +266,7 @@ public abstract class AbstractPeerTypeToolbarAction extends Action implements IA } }; if (labelProvider != null) { - action.setImageDescriptor(ImageDescriptor.createFromImage(labelProvider.getImage(peerModel))); + action.setImageDescriptor(ImageDescriptor.createFromImage(labelProvider.getImage(peerNode))); } addToMenu(menu, action, accelerator); accelerator++; @@ -283,7 +283,7 @@ public abstract class AbstractPeerTypeToolbarAction extends Action implements IA // Get the active page IWorkbenchPage page = window.getActivePage(); // Create the agent selection dialog - AgentSelectionDialog dialog = new AgentSelectionDialog(null) { + PeerSelectionDialog dialog = new PeerSelectionDialog(null) { @Override protected String getTitle() { return getSelectExistingDialogTitle(); @@ -312,7 +312,7 @@ public abstract class AbstractPeerTypeToolbarAction extends Action implements IA if (dialog.open() == Window.OK) { // Get the selected proxy from the dialog ISelection selection = dialog.getSelection(); - if (selection instanceof IStructuredSelection && !selection.isEmpty() && ((IStructuredSelection)selection).getFirstElement() instanceof IPeerModel) { + if (selection instanceof IStructuredSelection && !selection.isEmpty() && ((IStructuredSelection)selection).getFirstElement() instanceof IPeerNode) { // Create the editor input object IEditorInput input = new EditorInput(((IStructuredSelection)selection).getFirstElement()); try { @@ -375,12 +375,12 @@ public abstract class AbstractPeerTypeToolbarAction extends Action implements IA @SuppressWarnings("restriction") @Override public void run(IAction action) { - IPeerModel peerModel = getPeerModel(HistoryManager.getInstance().getFirst(getPeerTypeId())); - if (peerModel != null) { + IPeerNode peerNode = getPeerModel(HistoryManager.getInstance().getFirst(getPeerTypeId())); + if (peerNode != null) { // Get the active page IWorkbenchPage page = window.getActivePage(); // Create the editor input object - IEditorInput input = new EditorInput(peerModel); + IEditorInput input = new EditorInput(peerNode); try { // Opens the configuration editor page.openEditor(input, IUIConstants.ID_EDITOR); @@ -404,13 +404,13 @@ public abstract class AbstractPeerTypeToolbarAction extends Action implements IA /** * Get the label provider for a peer model node. * - * @param peerModel The peer model node. + * @param peerNode The peer model node. * @return The label provider or <code>null</code>. */ - protected ILabelProvider getLabelProvider(IPeerModel peerModel) { - ILabelProvider labelProvider = (ILabelProvider)peerModel.getAdapter(ILabelProvider.class); + protected ILabelProvider getLabelProvider(IPeerNode peerNode) { + ILabelProvider labelProvider = (ILabelProvider)peerNode.getAdapter(ILabelProvider.class); if (labelProvider == null) { - labelProvider = (ILabelProvider)Platform.getAdapterManager().loadAdapter(peerModel, ILabelProvider.class.getName()); + labelProvider = (ILabelProvider)Platform.getAdapterManager().loadAdapter(peerNode, ILabelProvider.class.getName()); } return labelProvider; } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/activator/UIPlugin.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/activator/UIPlugin.java index 128fd7397..3d06081ad 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/activator/UIPlugin.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/activator/UIPlugin.java @@ -29,8 +29,8 @@ import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepperOperationService; import org.eclipse.tcf.te.runtime.stepper.job.StepperJob; import org.eclipse.tcf.te.runtime.utils.StatusHelper; import org.eclipse.tcf.te.tcf.core.Tcf; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.interfaces.services.IStepperServiceOperations; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.internal.ImageConsts; @@ -104,7 +104,7 @@ public class UIPlugin extends AbstractUIPlugin { if (proceedShutdown || forced) { // Terminate the scanner - final ILocatorModel model = Model.getModel(true); + final IPeerModel model = Model.getModel(true); if (model != null) { Runnable runnable = new Runnable() { @Override @@ -125,23 +125,23 @@ public class UIPlugin extends AbstractUIPlugin { @Override public void run() { // Get all peer model objects - IPeerModel[] peers = model.getPeers(); + IPeerNode[] peers = model.getPeers(); // Loop them and check if disconnect is available - for (IPeerModel peerModel : peers) { - IService[] services = ServiceManager.getInstance().getServices(peerModel, IStepperOperationService.class, false); + for (IPeerNode peerNode : peers) { + IService[] services = ServiceManager.getInstance().getServices(peerNode, IStepperOperationService.class, false); IStepperOperationService stepperOperationService = null; for (IService service : services) { - if (service instanceof IStepperOperationService && ((IStepperOperationService)service).isHandledOperation(peerModel, IStepperServiceOperations.DISCONNECT)) { + if (service instanceof IStepperOperationService && ((IStepperOperationService)service).isHandledOperation(peerNode, IStepperServiceOperations.DISCONNECT)) { stepperOperationService = (IStepperOperationService)service; break; } } if (stepperOperationService != null) { - String stepGroupId = stepperOperationService.getStepGroupId(peerModel, IStepperServiceOperations.DISCONNECT); - IStepContext stepContext = stepperOperationService.getStepContext(peerModel, IStepperServiceOperations.DISCONNECT); - String name = stepperOperationService.getStepGroupName(peerModel, IStepperServiceOperations.DISCONNECT); - boolean isEnabled = stepperOperationService.isEnabled(peerModel, IStepperServiceOperations.DISCONNECT); - IPropertiesContainer data = stepperOperationService.getStepData(peerModel, IStepperServiceOperations.DISCONNECT); + String stepGroupId = stepperOperationService.getStepGroupId(peerNode, IStepperServiceOperations.DISCONNECT); + IStepContext stepContext = stepperOperationService.getStepContext(peerNode, IStepperServiceOperations.DISCONNECT); + String name = stepperOperationService.getStepGroupName(peerNode, IStepperServiceOperations.DISCONNECT); + boolean isEnabled = stepperOperationService.isEnabled(peerNode, IStepperServiceOperations.DISCONNECT); + IPropertiesContainer data = stepperOperationService.getStepData(peerNode, IStepperServiceOperations.DISCONNECT); if (isEnabled && stepGroupId != null && stepContext != null) { try { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/controls/DefaultContextStatusTrimControl.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/controls/DefaultContextStatusTrimControl.java index cfe2abdc9..a54d1c42f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/controls/DefaultContextStatusTrimControl.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/controls/DefaultContextStatusTrimControl.java @@ -26,7 +26,7 @@ import org.eclipse.tcf.te.runtime.interfaces.events.IEventListener; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; import org.eclipse.tcf.te.runtime.services.interfaces.delegates.ILabelProviderDelegate; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.swt.SWTControlUtil; @@ -60,17 +60,17 @@ public class DefaultContextStatusTrimControl extends WorkbenchWindowControlContr IDefaultContextService service = ServiceManager.getInstance().getService(IDefaultContextService.class); if (service != null) { - IPeerModel peerModel = service.getDefaultContext(null); - if (peerModel != null) { - IUIService uiService = ServiceManager.getInstance().getService(peerModel, IUIService.class); - ILabelProviderDelegate delegate = uiService != null ? uiService.getDelegate(peerModel, ILabelProviderDelegate.class) : null; + IPeerNode peerNode = service.getDefaultContext(null); + if (peerNode != null) { + IUIService uiService = ServiceManager.getInstance().getService(peerNode, IUIService.class); + ILabelProviderDelegate delegate = uiService != null ? uiService.getDelegate(peerNode, ILabelProviderDelegate.class) : null; if (delegate == null) { - ILabelProvider provider = (ILabelProvider)Platform.getAdapterManager().getAdapter(peerModel, ILabelProvider.class); + ILabelProvider provider = (ILabelProvider)Platform.getAdapterManager().getAdapter(peerNode, ILabelProvider.class); if (provider instanceof ILabelProviderDelegate) { delegate = (ILabelProviderDelegate)provider; } } - selected = NLS.bind(Messages.DefaultContextStatusTrimControl_label, delegate != null ? delegate.getText(peerModel) : peerModel.getName()); + selected = NLS.bind(Messages.DefaultContextStatusTrimControl_label, delegate != null ? delegate.getText(peerNode) : peerNode.getName()); } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/AgentSelectionDialog.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/PeerSelectionDialog.java index 5bae72b8c..aca1888fc 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/AgentSelectionDialog.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/PeerSelectionDialog.java @@ -9,11 +9,8 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.ui.dialogs; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.ListIterator; -import java.util.concurrent.atomic.AtomicInteger; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.dialogs.IDialogConstants; @@ -26,12 +23,7 @@ import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.TableLayout; import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.TreePath; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; @@ -40,11 +32,10 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; +import org.eclipse.tcf.services.ILocator; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.ui.nls.Messages; @@ -55,16 +46,13 @@ import org.eclipse.tcf.te.ui.views.navigator.DelegatingLabelProvider; /** * TCF agent selection dialog implementation. */ -public class AgentSelectionDialog extends CustomTitleAreaDialog { +public class PeerSelectionDialog extends CustomTitleAreaDialog { // The list of remote services the agents must provide to be included /* default */ final String[] services; // The table viewer /* default */ TableViewer viewer; - // Button to filter non-reachable targets - /* default */ Button showOnlyReachable; - // The selection. Will be filled in if either "OK" or "Cancel" is pressed private ISelection selection; @@ -73,7 +61,7 @@ public class AgentSelectionDialog extends CustomTitleAreaDialog { * * @param services The list of (remote) services the agents must provide to be selectable, or <code>null</code>. */ - public AgentSelectionDialog(String[] services) { + public PeerSelectionDialog(String[] services) { this(null, services); } @@ -83,7 +71,7 @@ public class AgentSelectionDialog extends CustomTitleAreaDialog { * @param parent The parent shell used to view the dialog, or <code>null</code>. * @param services The list of (remote) services the agents must provide to be selectable, or <code>null</code>. */ - public AgentSelectionDialog(Shell parent, String[] services) { + public PeerSelectionDialog(Shell parent, String[] services) { super(parent, IContextHelpIds.AGENT_SELECTION_DIALOG); this.services = services != null && services.length > 0 ? services : null; @@ -156,29 +144,25 @@ public class AgentSelectionDialog extends CustomTitleAreaDialog { }; viewer.setLabelProvider(new DecoratingLabelProvider(labelProvider, labelProvider)); - // Create the filter buttons area - createFilterButtons(parent); - // Subclasses may customize the viewer before setting the input configureTableViewer(viewer); - // The content to show is static. Do the filtering manually so that - // we can disable the OK Button if the dialog would not show any content. - final ILocatorModelLookupService service = getModel().getService(ILocatorModelLookupService.class); - final List<IPeerModel> nodes = new ArrayList<IPeerModel>(); - if (service != null) { - nodes.addAll(Arrays.asList(service.lkupPeerModelBySupportedServices(null, services))); - ListIterator<IPeerModel> iterator = nodes.listIterator(); - while (iterator.hasNext()) { - IPeerModel node = iterator.next(); + final AtomicReference<IPeer[]> peers = new AtomicReference<IPeer[]>(null); - String value = node.getPeer().getAttributes().get("ValueAdd"); //$NON-NLS-1$ - boolean isValueAdd = value != null && ("1".equals(value.trim()) || Boolean.parseBoolean(value.trim())); //$NON-NLS-1$ + Protocol.invokeAndWait(new Runnable() { + @Override + public void run() { + // Get the locator service + ILocator locatorService = Protocol.getLocator(); + if (locatorService != null) { + // Get the map of peers known to the locator service. + Map<String, IPeer> peerMap = locatorService.getPeers(); + peers.set(peerMap.values().toArray(new IPeer[peerMap.size()])); + } + } + }); - if (isValueAdd) iterator.remove(); - } - } - viewer.setInput(nodes.size() > 0 ? nodes.toArray(new IPeerModel[nodes.size()]) : null); + viewer.setInput(peers.get()); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { @@ -188,48 +172,8 @@ public class AgentSelectionDialog extends CustomTitleAreaDialog { } }); - // Determine the initial state of the "show only reachable" button. If there are no - // reachable target while opening the dialog, this button should be not selected. - boolean showOnlyReachableSelected = true; - ViewerFilter[] filters = viewer.getFilters(); - if (filters != null && filters.length > 0) { - TreePath parentPath = new TreePath(new Object[0]); - Object[] result = nodes.toArray(); - for (ViewerFilter filter : filters) { - Object[] filteredResult = filter.filter(viewer, parentPath, result); - result = filteredResult; - } - showOnlyReachableSelected = result.length > 0; - } else { - showOnlyReachableSelected = nodes.size() > 0; - } - - if (showOnlyReachableSelected != SWTControlUtil.getSelection(showOnlyReachable)) { - SWTControlUtil.setSelection(showOnlyReachable, showOnlyReachableSelected); - viewer.refresh(); - updateEnablement(viewer); - } - } - - /** - * Creates a set of filter buttons in between the main dialog area - * and the button bar. - * - * @param parent The parent composite. Must not be <code>null</code>. - */ - protected void createFilterButtons(Composite parent) { - Assert.isNotNull(parent); - - showOnlyReachable = new Button(parent, SWT.CHECK); - SWTControlUtil.setText(showOnlyReachable, getShowOnlyReachableLabel()); - SWTControlUtil.setSelection(showOnlyReachable, true); - showOnlyReachable.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - viewer.refresh(); - updateEnablement(viewer); - } - }); + viewer.refresh(); + updateEnablement(viewer); } /** @@ -274,33 +218,6 @@ public class AgentSelectionDialog extends CustomTitleAreaDialog { */ protected void configureTableViewer(TableViewer viewer) { Assert.isNotNull(viewer); - - viewer.addFilter(new ViewerFilter() { - - @Override - public boolean select(Viewer viewer, Object parentElement, final Object element) { - if (element instanceof IPeerModel) { - final AtomicInteger state = new AtomicInteger(IPeerModelProperties.STATE_UNKNOWN); - - Runnable runnable = new Runnable() { - @Override - public void run() { - state.set(((IPeerModel)element).getIntProperty(IPeerModelProperties.PROP_STATE)); - } - }; - - if (Protocol.isDispatchThread()) runnable.run(); - else Protocol.invokeAndWait(runnable); - - boolean isShowOnlyReachable = SWTControlUtil.getSelection(showOnlyReachable); - if (isShowOnlyReachable) { - return state.get() == IPeerModelProperties.STATE_CONNECTED || state.get() == IPeerModelProperties.STATE_REACHABLE || state.get() == IPeerModelProperties.STATE_WAITING_FOR_READY; - } - } - - return true; - } - }); } /** @@ -336,7 +253,7 @@ public class AgentSelectionDialog extends CustomTitleAreaDialog { * * @return The locator model instance. */ - protected ILocatorModel getModel() { + protected IPeerModel getModel() { return Model.getModel(); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/RedirectAgentSelectionDialog.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/RedirectPeerSelectionDialog.java index 6e0d0d12c..fb3c1125b 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/RedirectAgentSelectionDialog.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/RedirectPeerSelectionDialog.java @@ -1,71 +1,71 @@ -/*******************************************************************************
- * Copyright (c) 2011 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.ui.dialogs;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tcf.te.tcf.ui.nls.Messages;
-
-
-/**
- * Agent selection dialog implementation to choose the proxy to redirect the communication through.
- */
-public class RedirectAgentSelectionDialog extends AgentSelectionDialog {
-
- /**
- * Constructor.
- *
- * @param services The list of (remote) services the agents must provide to be selectable, or <code>null</code>.
- */
- public RedirectAgentSelectionDialog(String[] services) {
- super(services);
- }
-
- /**
- * Constructor.
- *
- * @param parent The parent shell used to view the dialog, or <code>null</code>.
- * @param services The list of (remote) services the agents must provide to be selectable, or <code>null</code>.
- */
- public RedirectAgentSelectionDialog(Shell parent, String[] services) {
- super(parent, services);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.ui.dialogs.AgentSelectionDialog#getDialogTitle()
- */
- @Override
- protected String getDialogTitle() {
- return Messages.RedirectAgentSelectionDialog_dialogTitle;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.ui.dialogs.AgentSelectionDialog#getTitle()
- */
- @Override
- protected String getTitle() {
- return Messages.RedirectAgentSelectionDialog_title;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.ui.dialogs.AgentSelectionDialog#getDefaultMessage()
- */
- @Override
- protected String getDefaultMessage() {
- return Messages.RedirectAgentSelectionDialog_message;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.ui.dialogs.AgentSelectionDialog#supportsMultiSelection()
- */
- @Override
- protected boolean supportsMultiSelection() {
- return false;
- }
-}
+/******************************************************************************* + * Copyright (c) 2011 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.ui.dialogs; + +import org.eclipse.swt.widgets.Shell; +import org.eclipse.tcf.te.tcf.ui.nls.Messages; + + +/** + * Agent selection dialog implementation to choose the proxy to redirect the communication through. + */ +public class RedirectPeerSelectionDialog extends PeerSelectionDialog { + + /** + * Constructor. + * + * @param services The list of (remote) services the agents must provide to be selectable, or <code>null</code>. + */ + public RedirectPeerSelectionDialog(String[] services) { + super(services); + } + + /** + * Constructor. + * + * @param parent The parent shell used to view the dialog, or <code>null</code>. + * @param services The list of (remote) services the agents must provide to be selectable, or <code>null</code>. + */ + public RedirectPeerSelectionDialog(Shell parent, String[] services) { + super(parent, services); + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.ui.dialogs.PeerSelectionDialog#getDialogTitle() + */ + @Override + protected String getDialogTitle() { + return Messages.RedirectAgentSelectionDialog_dialogTitle; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.ui.dialogs.PeerSelectionDialog#getTitle() + */ + @Override + protected String getTitle() { + return Messages.RedirectAgentSelectionDialog_title; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.ui.dialogs.PeerSelectionDialog#getDefaultMessage() + */ + @Override + protected String getDefaultMessage() { + return Messages.RedirectAgentSelectionDialog_message; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.ui.dialogs.PeerSelectionDialog#supportsMultiSelection() + */ + @Override + protected boolean supportsMultiSelection() { + return false; + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/AbstractConfigurationEditorPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/AbstractConfigurationEditorPage.java index 97de115ca..6b368f08c 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/AbstractConfigurationEditorPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/AbstractConfigurationEditorPage.java @@ -16,13 +16,14 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.widgets.Composite; import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.core.interfaces.IConnectable; import org.eclipse.tcf.te.runtime.persistence.interfaces.IURIPersistenceService; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.ISimulatorService; import org.eclipse.tcf.te.runtime.statushandler.StatusHandlerUtil; import org.eclipse.tcf.te.runtime.utils.StatusHelper; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; import org.eclipse.tcf.te.tcf.ui.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.tcf.ui.sections.SimulatorTypeSelectionSection; @@ -134,33 +135,31 @@ public abstract class AbstractConfigurationEditorPage extends AbstractCustomForm // If necessary, write the changed peer attributes final Object input = getEditorInputNode(); - if (input instanceof IPeerModel) { + if (input instanceof IPeerNode) { Runnable runnable = new Runnable() { @Override public void run() { try { - boolean isDynamic = !((IPeerModel)input).isStatic(); - // Get the persistence service IURIPersistenceService uRIPersistenceService = ServiceManager.getInstance().getService(IURIPersistenceService.class); if (uRIPersistenceService == null) { throw new IOException("Persistence service instance unavailable."); //$NON-NLS-1$ } // Save the peer node to the new persistence storage - uRIPersistenceService.write(((IPeerModel)input).getPeer(), null); + uRIPersistenceService.write(((IPeerNode)input).getPeer(), null); // In case the node had been dynamically discovered before, we have to trigger a refresh // to the locator model to read in the newly created static peer - if (isDynamic) { + if (((IPeerNode)input).getConnectState() == IConnectable.STATE_CONNECTED) { // Refresh the static peers - ((IPeerModel)input).getModel().getService(ILocatorModelRefreshService.class).refreshStaticPeers(); + ((IPeerNode)input).getModel().getService(IPeerModelRefreshService.class).refreshStaticPeers(); // Reopen the editor on the current page ViewsUtil.reopenEditor(getEditor(), getEditor().getActivePageInstance().getId(), false); } } catch (IOException e) { // Build up the message template - String template = NLS.bind(Messages.AbstractConfigurationEditorPage_error_save, ((IPeerModel)input).getName(), Messages.AbstractConfigurationEditorPage_error_possibleCause); + String template = NLS.bind(Messages.AbstractConfigurationEditorPage_error_save, ((IPeerNode)input).getName(), Messages.AbstractConfigurationEditorPage_error_possibleCause); // Handle the status StatusHandlerUtil.handleStatus(StatusHelper.getStatus(e), input, template, null, IContextHelpIds.MESSAGE_SAVE_FAILED, AbstractConfigurationEditorPage.this, null); } @@ -173,7 +172,7 @@ public abstract class AbstractConfigurationEditorPage extends AbstractCustomForm @Override public void run() { // Trigger a change event for the original data node - ((IPeerModel)input).fireChangeEvent("properties", null, ((IPeerModel)input).getProperties()); //$NON-NLS-1$ + ((IPeerNode)input).fireChangeEvent("properties", null, ((IPeerNode)input).getProperties()); //$NON-NLS-1$ } }); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/OverviewEditorPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/OverviewEditorPage.java index 3375c572c..d614abe14 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/OverviewEditorPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/OverviewEditorPage.java @@ -24,7 +24,7 @@ import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.statushandler.StatusHandlerUtil; import org.eclipse.tcf.te.runtime.utils.StatusHelper; import org.eclipse.tcf.te.tcf.locator.ScannerRunnable; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.ui.activator.UIPlugin; import org.eclipse.tcf.te.tcf.ui.editor.sections.AttributesSection; import org.eclipse.tcf.te.tcf.ui.editor.sections.GeneralInformationSection; @@ -175,9 +175,9 @@ public class OverviewEditorPage extends AbstractCustomFormToolkitEditorPage { return; } super.setInput(input); - if (getEditorInputNode() instanceof IPeerModel) { + if (getEditorInputNode() instanceof IPeerNode) { // Invoke the scanner runnable - ScannerRunnable runnable = new ScannerRunnable(null, ((IPeerModel)getEditorInputNode())); + ScannerRunnable runnable = new ScannerRunnable(null, ((IPeerNode)getEditorInputNode())); Protocol.invokeLater(runnable); } } @@ -188,8 +188,8 @@ public class OverviewEditorPage extends AbstractCustomFormToolkitEditorPage { @Override protected void setInputWithNotify(IEditorInput input) { super.setInputWithNotify(input); - if (getEditorInputNode() instanceof IPeerModel) { - ScannerRunnable runnable = new ScannerRunnable(null, ((IPeerModel)getEditorInputNode())); + if (getEditorInputNode() instanceof IPeerNode) { + ScannerRunnable runnable = new ScannerRunnable(null, ((IPeerNode)getEditorInputNode())); Protocol.invokeLater(runnable); } } @@ -201,24 +201,21 @@ public class OverviewEditorPage extends AbstractCustomFormToolkitEditorPage { public void postDoSave(IProgressMonitor monitor) { // If necessary, write the changed peer attributes final Object input = getEditorInputNode(); - if (input instanceof IPeerModel) { + if (input instanceof IPeerNode) { Runnable runnable = new Runnable() { @Override public void run() { try { - boolean isStatic = ((IPeerModel)input).isStatic(); - if (isStatic) { // Get the persistence service IURIPersistenceService uRIPersistenceService = ServiceManager.getInstance().getService(IURIPersistenceService.class); if (uRIPersistenceService == null) { throw new IOException("Persistence service instance unavailable."); //$NON-NLS-1$ } // Save the peer node to the new persistence storage - uRIPersistenceService.write(((IPeerModel)input).getPeer(), null); - } + uRIPersistenceService.write(((IPeerNode)input).getPeer(), null); } catch (IOException e) { // Build up the message template - String template = NLS.bind(Messages.OverviewEditorPage_error_save, ((IPeerModel)input).getName(), Messages.PossibleCause); + String template = NLS.bind(Messages.OverviewEditorPage_error_save, ((IPeerNode)input).getName(), Messages.PossibleCause); // Handle the status StatusHandlerUtil.handleStatus(StatusHelper.getStatus(e), input, template, null, IContextHelpIds.MESSAGE_SAVE_FAILED, OverviewEditorPage.this, null); } @@ -231,12 +228,12 @@ public class OverviewEditorPage extends AbstractCustomFormToolkitEditorPage { @Override public void run() { // Trigger a change event for the original data node - ((IPeerModel)input).fireChangeEvent("properties", null, ((IPeerModel)input).getProperties()); //$NON-NLS-1$ + ((IPeerNode)input).fireChangeEvent("properties", null, ((IPeerNode)input).getProperties()); //$NON-NLS-1$ } }); // Force a scan of the peer - ScannerRunnable runnable2 = new ScannerRunnable(null, ((IPeerModel)input)); + ScannerRunnable runnable2 = new ScannerRunnable(null, ((IPeerNode)input)); Protocol.invokeLater(runnable2); } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/AttributesSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/AttributesSection.java index db8cff7c1..cd2f9e825 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/AttributesSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/AttributesSection.java @@ -14,7 +14,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.core.runtime.Assert; import org.eclipse.swt.SWT; @@ -24,11 +23,12 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.core.interfaces.IConnectable; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; import org.eclipse.tcf.te.tcf.ui.controls.PeerAttributesTablePart; import org.eclipse.tcf.te.tcf.ui.nls.Messages; @@ -47,7 +47,7 @@ public class AttributesSection extends AbstractSection { private PeerAttributesTablePart tablePart; // Reference to the original data object - /* default */ IPeerModel od; + /* default */ IPeerNode od; // Reference to a copy of the original data /* default */ final IPropertiesContainer odc = new PropertiesContainer(); // Reference to the properties container representing the working copy for the section @@ -62,7 +62,7 @@ public class AttributesSection extends AbstractSection { IPeer.ATTR_NAME, IPeer.ATTR_TRANSPORT_NAME, IPeer.ATTR_IP_HOST, IPeer.ATTR_IP_PORT, "PipeName", //$NON-NLS-1$ "redirect.proxy", //$NON-NLS-1$ - IPeerModelProperties.PROP_VISIBLE, "ClientID" //$NON-NLS-1$ + IPeerNodeProperties.PROP_VISIBLE, "ClientID" //$NON-NLS-1$ }; /* @@ -75,7 +75,7 @@ public class AttributesSection extends AbstractSection { IPeer.ATTR_NAME, IPeer.ATTR_TRANSPORT_NAME, IPeer.ATTR_IP_HOST, IPeer.ATTR_IP_PORT, "PipeName", //$NON-NLS-1$ "redirect.proxy", //$NON-NLS-1$ - IPeerModelProperties.PROP_VISIBLE, "ClientID" //$NON-NLS-1$ + IPeerNodeProperties.PROP_VISIBLE, "ClientID" //$NON-NLS-1$ }; /** @@ -160,8 +160,8 @@ public class AttributesSection extends AbstractSection { if (getManagedForm().getContainer() instanceof AbstractEditorPage && !((AbstractEditorPage)getManagedForm().getContainer()).isDirty()) { Object node = ((AbstractEditorPage)getManagedForm().getContainer()).getEditorInputNode(); - if (node instanceof IPeerModel) { - setupData((IPeerModel)node); + if (node instanceof IPeerNode) { + setupData((IPeerNode)node); } } } else { @@ -178,7 +178,7 @@ public class AttributesSection extends AbstractSection { * * @param node The peer node or <code>null</code>. */ - public void setupData(final IPeerModel node) { + public void setupData(final IPeerNode node) { // If the section is dirty, nothing is changed if (isDirty()) return; @@ -276,7 +276,7 @@ public class AttributesSection extends AbstractSection { * * @param node The GDB Remote configuration node or <code>null</code>. */ - public void extractData(final IPeerModel node) { + public void extractData(final IPeerNode node) { // If no data is available, we are done if (node == null) { return; @@ -330,7 +330,7 @@ public class AttributesSection extends AbstractSection { IPeer newPeer = oldPeer instanceof PeerRedirector ? new PeerRedirector(((PeerRedirector)oldPeer).getParent(), attributes) : new Peer(attributes); // Update the peer node instance (silently) boolean changed = node.setChangeEventsEnabled(false); - node.setProperty(IPeerModelProperties.PROP_INSTANCE, newPeer); + node.setProperty(IPeerNodeProperties.PROP_INSTANCE, newPeer); if (changed) { node.setChangeEventsEnabled(true); } @@ -393,30 +393,12 @@ public class AttributesSection extends AbstractSection { * Updates the control enablement. */ protected void updateEnablement() { - // Determine the input - final Object input = getManagedForm().getInput(); - - // Determine if the peer is a static peer - final AtomicBoolean isStatic = new AtomicBoolean(); - final AtomicBoolean isRemote = new AtomicBoolean(); - Runnable runnable = new Runnable() { - @Override - public void run() { - if (input instanceof IPeerModel) { - isStatic.set(((IPeerModel)input).isStatic()); - isRemote.set(((IPeerModel)input).isRemote()); - } - } - }; - if (Protocol.isDispatchThread()) { - runnable.run(); - } - else { - Protocol.invokeAndWait(runnable); - } - if (tablePart != null) { - tablePart.setReadOnly(!isStatic.get() || isRemote.get()); + // Determine the input + final Object input = getManagedForm().getInput(); + if (input instanceof IPeerNode) { + tablePart.setReadOnly(((IPeerNode)input).getConnectState() != IConnectable.STATE_DISCONNECTED); + } } } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/GeneralInformationSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/GeneralInformationSection.java index d36d42cdc..b13904a1f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/GeneralInformationSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/GeneralInformationSection.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011, 2013 Wind River Systems, Inc. and others. All rights reserved. +* Copyright (c) 2011, 2013 Wind River Systems, Inc. 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 @@ -13,7 +13,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.IStatus; @@ -30,6 +29,7 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.core.interfaces.IConnectable; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableNodeProperties; import org.eclipse.tcf.te.runtime.persistence.interfaces.IURIPersistenceService; @@ -38,8 +38,8 @@ import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.statushandler.StatusHandlerUtil; import org.eclipse.tcf.te.runtime.utils.StatusHelper; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; import org.eclipse.tcf.te.tcf.ui.activator.UIPlugin; @@ -65,7 +65,7 @@ public class GeneralInformationSection extends AbstractSection { private Label linkStateImage = null; // Reference to the original data object - /* default */ IPeerModel od; + /* default */ IPeerNode od; // Reference to a copy of the original data /* default */ final IPropertiesContainer odc = new PropertiesContainer(); // Reference to the properties container representing the working copy for the section @@ -204,8 +204,8 @@ public class GeneralInformationSection extends AbstractSection { if (getManagedForm().getContainer() instanceof AbstractEditorPage && !((AbstractEditorPage)getManagedForm().getContainer()).isDirty()) { Object node = ((AbstractEditorPage)getManagedForm().getContainer()).getEditorInputNode(); - if (node instanceof IPeerModel) { - setupData((IPeerModel)node); + if (node instanceof IPeerNode) { + setupData((IPeerNode)node); } } } else { @@ -222,7 +222,7 @@ public class GeneralInformationSection extends AbstractSection { * * @param node The peer node or <code>null</code>. */ - public void setupData(final IPeerModel node) { + public void setupData(final IPeerNode node) { // If the section is dirty, nothing is changed if (isDirty()) return; @@ -257,7 +257,7 @@ public class GeneralInformationSection extends AbstractSection { public void run() { // The section is handling the ID, the name and // the link state. Ignore other properties. - odc.setProperty(IPeerModelProperties.PROP_STATE, node.getProperty(IPeerModelProperties.PROP_STATE)); + odc.setProperty(IPeerNodeProperties.PROP_STATE, node.getProperty(IPeerNodeProperties.PROP_STATE)); odc.setProperty(IPeer.ATTR_ID, node.getPeer().getAttributes().get(IPeer.ATTR_ID)); odc.setProperty(IPeer.ATTR_NAME, node.getPeer().getAttributes().get(IPeer.ATTR_NAME)); // Initially, the working copy is a duplicate of the original data copy @@ -282,10 +282,10 @@ public class GeneralInformationSection extends AbstractSection { } if (linkState != null && linkStateImage != null) { - String state = wc.getStringProperty(IPeerModelProperties.PROP_STATE); + String state = wc.getStringProperty(IPeerNodeProperties.PROP_STATE); linkState.setText(Messages.getString("GeneralInformationSection_state_" + (state != null ? state.replace('-', '_') : "_1"))); //$NON-NLS-1$ //$NON-NLS-2$ - switch (wc.getIntProperty(IPeerModelProperties.PROP_STATE)) { + switch (wc.getIntProperty(IPeerNodeProperties.PROP_STATE)) { case 0: linkStateImage.setImage(UIPlugin.getImage(ImageConsts.GOLD_OVR)); break; @@ -324,7 +324,7 @@ public class GeneralInformationSection extends AbstractSection { * * @param node The peer node or <code>null</code>. */ - public void extractData(final IPeerModel node) { + public void extractData(final IPeerNode node) { // If no data is available, we are done if (node == null) { return; @@ -363,7 +363,7 @@ public class GeneralInformationSection extends AbstractSection { IPeer newPeer = oldPeer instanceof PeerRedirector ? new PeerRedirector(((PeerRedirector)oldPeer).getParent(), attributes) : new Peer(attributes); // Update the peer node instance (silently) boolean changed = node.setChangeEventsEnabled(false); - node.setProperty(IPeerModelProperties.PROP_INSTANCE, newPeer); + node.setProperty(IPeerNodeProperties.PROP_INSTANCE, newPeer); if (changed) node.setChangeEventsEnabled(true); } }); @@ -465,27 +465,8 @@ public class GeneralInformationSection extends AbstractSection { // Determine the input final Object input = getManagedForm().getInput(); - // The name control is enabled for static peers - if (nameControl != null) { - final AtomicBoolean isStatic = new AtomicBoolean(); - final AtomicBoolean isRemote = new AtomicBoolean(); - Runnable runnable = new Runnable() { - @Override - public void run() { - if (input instanceof IPeerModel) { - isStatic.set(((IPeerModel)input).isStatic()); - isRemote.set(((IPeerModel)input).isRemote()); - } - } - }; - if (Protocol.isDispatchThread()) { - runnable.run(); - } - else { - Protocol.invokeAndWait(runnable); - } - - SWTControlUtil.setEnabled(nameControl.getEditFieldControl(), isStatic.get() && !isRemote.get()); + if (input instanceof IPeerNode) { + SWTControlUtil.setEnabled(nameControl.getEditFieldControl(), ((IPeerNode)input).getConnectState() == IConnectable.STATE_DISCONNECTED); } } @@ -499,11 +480,11 @@ public class GeneralInformationSection extends AbstractSection { @Override public void run() { // Get all peer model objects - IPeerModel[] peers = Model.getModel().getPeers(); + IPeerNode[] peers = Model.getModel().getPeers(); // Loop them and find the ones which are of our handled types - for (IPeerModel peerModel : peers) { - if (peerModel.isStatic() && !peerModel.equals(od)) { - String name = peerModel.getPeer().getName(); + for (IPeerNode peerNode : peers) { + if (!peerNode.equals(od)) { + String name = peerNode.getPeer().getName(); Assert.isNotNull(name); if (!"".equals(name) && !usedNames.contains(name)) { //$NON-NLS-1$ usedNames.add(name.trim().toUpperCase()); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/ServicesSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/ServicesSection.java index b660de602..3f2296a93 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/ServicesSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/ServicesSection.java @@ -21,9 +21,9 @@ import org.eclipse.swt.widgets.Text; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.forms.parts.AbstractSection; import org.eclipse.tcf.te.ui.swt.DisplayUtil; @@ -43,7 +43,7 @@ public class ServicesSection extends AbstractSection { /* default */ Text remote; // Reference to the original data object - /* default */ IPeerModel od; + /* default */ IPeerNode od; // Reference to a copy of the original data /* default */ final IPropertiesContainer odc = new PropertiesContainer(); @@ -118,8 +118,8 @@ public class ServicesSection extends AbstractSection { if (getManagedForm().getContainer() instanceof AbstractEditorPage && !((AbstractEditorPage)getManagedForm().getContainer()).isDirty()) { Object node = ((AbstractEditorPage)getManagedForm().getContainer()).getEditorInputNode(); - if (node instanceof IPeerModel) { - setupData((IPeerModel)node); + if (node instanceof IPeerNode) { + setupData((IPeerNode)node); } } } @@ -136,7 +136,7 @@ public class ServicesSection extends AbstractSection { * * @param node The peer node or <code>null</code>. */ - public void setupData(final IPeerModel node) { + public void setupData(final IPeerNode node) { // Reset the services query triggered flag if we setup for a new peer model node if (od != node) servicesQueryTriggered = false; @@ -181,10 +181,10 @@ public class ServicesSection extends AbstractSection { public void run() { boolean fireNotification = fireRefreshTabs.get(); - String value = odc.getStringProperty(IPeerModelProperties.PROP_LOCAL_SERVICES); + String value = odc.getStringProperty(IPeerNodeProperties.PROP_LOCAL_SERVICES); fireNotification |= value != null && !value.equals(SWTControlUtil.getText(local)); SWTControlUtil.setText(local, value != null ? value : ""); //$NON-NLS-1$ - value = odc.getStringProperty(IPeerModelProperties.PROP_REMOTE_SERVICES); + value = odc.getStringProperty(IPeerNodeProperties.PROP_REMOTE_SERVICES); fireNotification |= value != null && !value.equals(SWTControlUtil.getText(remote)); SWTControlUtil.setText(remote, value != null ? value : ""); //$NON-NLS-1$ @@ -208,18 +208,18 @@ public class ServicesSection extends AbstractSection { public void run() { // Check if we have to run the query at all boolean doQuery = finForceQuery || - (!node.containsKey(IPeerModelProperties.PROP_REMOTE_SERVICES) - && !node.containsKey(IPeerModelProperties.PROP_LOCAL_SERVICES)); + (!node.containsKey(IPeerNodeProperties.PROP_REMOTE_SERVICES) + && !node.containsKey(IPeerNodeProperties.PROP_LOCAL_SERVICES)); if (doQuery) { - ILocatorModelPeerNodeQueryService service = node.getModel().getService(ILocatorModelPeerNodeQueryService.class); + IPeerModelQueryService service = node.getModel().getService(IPeerModelQueryService.class); if (service != null) { - service.queryServicesAsync(node, new ILocatorModelPeerNodeQueryService.DoneQueryServices() { + service.queryServicesAsync(node, new IPeerModelQueryService.DoneQueryServices() { @Override public void doneQueryServices(Throwable error) { // Copy over the service properties - odc.setProperty(IPeerModelProperties.PROP_REMOTE_SERVICES, node.getProperty(IPeerModelProperties.PROP_REMOTE_SERVICES)); - odc.setProperty(IPeerModelProperties.PROP_LOCAL_SERVICES, node.getProperty(IPeerModelProperties.PROP_LOCAL_SERVICES)); + odc.setProperty(IPeerNodeProperties.PROP_REMOTE_SERVICES, node.getProperty(IPeerNodeProperties.PROP_REMOTE_SERVICES)); + odc.setProperty(IPeerNodeProperties.PROP_LOCAL_SERVICES, node.getProperty(IPeerNodeProperties.PROP_LOCAL_SERVICES)); // Setup the data within the UI controls and fire the change notification fireRefreshTabs.set(true); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/TcpTransportSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/TcpTransportSection.java index 3a1963898..42bc893a7 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/TcpTransportSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/TcpTransportSection.java @@ -14,7 +14,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.dialogs.IDialogSettings; @@ -27,15 +26,16 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.tcf.protocol.IChannel; import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.core.interfaces.IConnectable; import org.eclipse.tcf.te.core.nodes.interfaces.wire.IWireTypeNetwork; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.core.interfaces.ITransportTypes; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.controls.net.RemoteHostAddressControl; @@ -62,7 +62,7 @@ public class TcpTransportSection extends AbstractSection implements IDataExchang private boolean isAutoPort = false; // Reference to the original data object - protected IPeerModel od; + protected IPeerNode od; // Reference to a copy of the original data /* default */final IPropertiesContainer odc = new PropertiesContainer(); // Reference to the properties container representing the working copy for the section @@ -304,8 +304,8 @@ public class TcpTransportSection extends AbstractSection implements IDataExchang // Leave everything unchanged if the page is in dirty state if (getManagedForm().getContainer() instanceof AbstractEditorPage && !((AbstractEditorPage) getManagedForm().getContainer()).isDirty()) { Object node = ((AbstractEditorPage) getManagedForm().getContainer()).getEditorInputNode(); - if (node instanceof IPeerModel) { - setupData((IPeerModel) node); + if (node instanceof IPeerNode) { + setupData((IPeerNode) node); } } } @@ -354,7 +354,7 @@ public class TcpTransportSection extends AbstractSection implements IDataExchang * * @param node The peer node or <code>null</code>. */ - public void setupData(final IPeerModel node) { + public void setupData(final IPeerNode node) { // If the section is dirty, nothing is changed if (isDirty()) return; @@ -460,7 +460,7 @@ public class TcpTransportSection extends AbstractSection implements IDataExchang * * @param node The peer model node or <code>null</code>. */ - public void extractData(final IPeerModel node) { + public void extractData(final IPeerNode node) { // If no data is available, we are done if (node == null) { return; @@ -521,15 +521,15 @@ public class TcpTransportSection extends AbstractSection implements IDataExchang IPeer newPeer = oldPeer instanceof PeerRedirector ? new PeerRedirector(((PeerRedirector) oldPeer).getParent(), attributes) : new Peer(attributes); // Update the peer node instance (silently) boolean changed = node.setChangeEventsEnabled(false); - node.setProperty(IPeerModelProperties.PROP_INSTANCE, newPeer); + node.setProperty(IPeerNodeProperties.PROP_INSTANCE, newPeer); // As the transport changed, we have to reset the state back to "unknown" // and clear out the services and DNS markers - node.setProperty(IPeerModelProperties.PROP_STATE, IPeerModelProperties.STATE_UNKNOWN); + node.setProperty(IPeerNodeProperties.PROP_STATE, IPeerNodeProperties.STATE_UNKNOWN); node.setProperty("dns.name.transient", null); //$NON-NLS-1$ node.setProperty("dns.lastIP.transient", null); //$NON-NLS-1$ node.setProperty("dns.skip.transient", null); //$NON-NLS-1$ - ILocatorModelUpdateService service = node.getModel().getService(ILocatorModelUpdateService.class); + IPeerModelUpdateService service = node.getModel().getService(IPeerModelUpdateService.class); service.updatePeerServices(node, null, null); if (changed) { @@ -656,25 +656,9 @@ public class TcpTransportSection extends AbstractSection implements IDataExchang // Determine the input final Object input = od; // getManagedForm().getInput(); - // Determine if the peer is a static peer - final AtomicBoolean isStatic = new AtomicBoolean(); - final AtomicBoolean isRemote = new AtomicBoolean(); - Runnable runnable = new Runnable() { - @Override - public void run() { - if (input instanceof IPeerModel) { - isStatic.set(((IPeerModel) input).isStatic()); - isRemote.set(((IPeerModel) input).isRemote()); - } - } - }; - - if (Protocol.isDispatchThread()) runnable.run(); - else Protocol.invokeAndWait(runnable); - - boolean enabled = !isReadOnly() && (input == null || (isStatic.get() && !isRemote.get())); - if (addressControl != null) addressControl.setEnabled(enabled); - if (portControl != null) portControl.setEnabled(enabled && !isAutoPort); + boolean enabled = !isReadOnly() && (!(input instanceof IPeerNode) || ((IPeerNode)input).getConnectState() == IConnectable.STATE_DISCONNECTED); + if (addressControl != null) addressControl.setEnabled(enabled); + if (portControl != null) portControl.setEnabled(enabled && !isAutoPort); } /* (non-Javadoc) diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/TransportSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/TransportSection.java index 47972e8da..9c89a206a 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/TransportSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/editor/sections/TransportSection.java @@ -15,7 +15,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.dialogs.IDialogSettings; @@ -27,14 +26,15 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.tcf.protocol.IChannel; import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.core.interfaces.IConnectable; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; import org.eclipse.tcf.te.tcf.core.Tcf; import org.eclipse.tcf.te.tcf.core.interfaces.ITransportTypes; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; import org.eclipse.tcf.te.tcf.ui.controls.CustomTransportPanel; import org.eclipse.tcf.te.tcf.ui.controls.PipeTransportPanel; @@ -61,7 +61,7 @@ public class TransportSection extends AbstractSection implements IDataExchangeNo /* default */TransportSectionTypePanelControl transportTypePanelControl = null; // Reference to the original data object - protected IPeerModel od; + protected IPeerNode od; // Reference to a copy of the original data /* default */final IPropertiesContainer odc = new PropertiesContainer(); // Reference to the properties container representing the working copy for the section @@ -237,8 +237,8 @@ public class TransportSection extends AbstractSection implements IDataExchangeNo // Leave everything unchanged if the page is in dirty state if (getManagedForm().getContainer() instanceof AbstractEditorPage && !((AbstractEditorPage) getManagedForm().getContainer()).isDirty()) { Object node = ((AbstractEditorPage) getManagedForm().getContainer()).getEditorInputNode(); - if (node instanceof IPeerModel) { - setupData((IPeerModel) node); + if (node instanceof IPeerNode) { + setupData((IPeerNode) node); } } } @@ -289,7 +289,7 @@ public class TransportSection extends AbstractSection implements IDataExchangeNo * * @param node The peer node or <code>null</code>. */ - public void setupData(final IPeerModel node) { + public void setupData(final IPeerNode node) { // If the section is dirty, nothing is changed if (isDirty()) return; @@ -402,7 +402,7 @@ public class TransportSection extends AbstractSection implements IDataExchangeNo * * @param node The GDB Remote configuration node or <code>null</code>. */ - public void extractData(final IPeerModel node) { + public void extractData(final IPeerNode node) { // If no data is available, we are done if (node == null) { return; @@ -465,16 +465,16 @@ public class TransportSection extends AbstractSection implements IDataExchangeNo .getParent(), attributes) : new Peer(attributes); // Update the peer node instance (silently) boolean changed = node.setChangeEventsEnabled(false); - node.setProperty(IPeerModelProperties.PROP_INSTANCE, newPeer); + node.setProperty(IPeerNodeProperties.PROP_INSTANCE, newPeer); // As the transport changed, we have to reset the state back to "unknown" // and clear out the services and DNS markers - node.setProperty(IPeerModelProperties.PROP_STATE, IPeerModelProperties.STATE_UNKNOWN); + node.setProperty(IPeerNodeProperties.PROP_STATE, IPeerNodeProperties.STATE_UNKNOWN); node.setProperty("dns.name.transient", null); //$NON-NLS-1$ node.setProperty("dns.lastIP.transient", null); //$NON-NLS-1$ node.setProperty("dns.skip.transient", null); //$NON-NLS-1$ - ILocatorModelUpdateService service = node.getModel() - .getService(ILocatorModelUpdateService.class); + IPeerModelUpdateService service = node.getModel() + .getService(IPeerModelUpdateService.class); service.updatePeerServices(node, null, null); if (changed) { @@ -605,25 +605,9 @@ public class TransportSection extends AbstractSection implements IDataExchangeNo // Determine the input final Object input = od; // getManagedForm().getInput(); - // Determine if the peer is a static peer - final AtomicBoolean isStatic = new AtomicBoolean(); - final AtomicBoolean isRemote = new AtomicBoolean(); - Runnable runnable = new Runnable() { - @Override - public void run() { - if (input instanceof IPeerModel) { - isStatic.set(((IPeerModel) input).isStatic()); - isRemote.set(((IPeerModel) input).isRemote()); - } - } - }; - - if (Protocol.isDispatchThread()) runnable.run(); - else Protocol.invokeAndWait(runnable); - // The transport type control is enabled for static peers if (transportTypeControl != null) { - boolean enabled = !isReadOnly() && (input == null || (isStatic.get() && !isRemote.get())); + boolean enabled = !isReadOnly() && (!(input instanceof IPeerNode) || ((IPeerNode)input).getConnectState() == IConnectable.STATE_DISCONNECTED); SWTControlUtil.setEnabled(transportTypeControl.getEditFieldControl(), enabled && SWTControlUtil.getItemCount(transportTypeControl.getEditFieldControl()) > 1); if (transportTypePanelControl != null) { IWizardConfigurationPanel panel = transportTypePanelControl.getConfigurationPanel(transportTypeControl.getSelectedTransportType()); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/PeersByCurrentUserFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/PeersByCurrentUserFilter.java index ef48a1a81..62e9b4204 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/PeersByCurrentUserFilter.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/PeersByCurrentUserFilter.java @@ -15,7 +15,7 @@ import org.eclipse.core.runtime.Assert; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Filter implementation filtering peers not started by the current user. @@ -28,18 +28,14 @@ public class PeersByCurrentUserFilter extends ViewerFilter { */ @Override public boolean select(final Viewer viewer, final Object parentElement, final Object element) { - if (element instanceof IPeerModel) { + if (element instanceof IPeerNode) { final AtomicReference<String> user = new AtomicReference<String>(); Runnable runnable = new Runnable() { @Override public void run() { - IPeerModel peerModel = (IPeerModel)element; - if (!peerModel.isStatic()) { - user.set(peerModel.getPeer().getUserName()); - } else { - user.set(USERNAME); - } + IPeerNode peerNode = (IPeerNode)element; + user.set(peerNode.getPeer().getUserName()); } }; Assert.isTrue(!Protocol.isDispatchThread()); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/RedirectPeersFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/RedirectPeersFilter.java index 2bf6b848f..0f161ddb1 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/RedirectPeersFilter.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/RedirectPeersFilter.java @@ -1,48 +1,48 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.ui.filter;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.tcf.protocol.Protocol;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-import org.eclipse.tcf.te.ui.views.interfaces.IRoot;
-
-/**
- * Filter implementation filtering redirected peers from the root level.
- */
-public class RedirectPeersFilter extends ViewerFilter {
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
- */
- @Override
- public boolean select(final Viewer viewer, final Object parentElement, final Object element) {
- if (element instanceof IPeerModel && parentElement instanceof IRoot) {
- final AtomicReference<IPeerModel> parent = new AtomicReference<IPeerModel>();
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- parent.set(((IPeerModel)element).getParent(IPeerModel.class));
- }
- };
- Assert.isTrue(!Protocol.isDispatchThread());
- Protocol.invokeAndWait(runnable);
-
- return parent.get() == null;
- }
-
- return true;
- }
-
-}
+/******************************************************************************* + * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.ui.filter; + +import java.util.concurrent.atomic.AtomicReference; + +import org.eclipse.core.runtime.Assert; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerFilter; +import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.ui.views.interfaces.IRoot; + +/** + * Filter implementation filtering redirected peers from the root level. + */ +public class RedirectPeersFilter extends ViewerFilter { + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) + */ + @Override + public boolean select(final Viewer viewer, final Object parentElement, final Object element) { + if (element instanceof IPeerNode && parentElement instanceof IRoot) { + final AtomicReference<IPeerNode> parent = new AtomicReference<IPeerNode>(); + Runnable runnable = new Runnable() { + @Override + public void run() { + parent.set(((IPeerNode)element).getParent(IPeerNode.class)); + } + }; + Assert.isTrue(!Protocol.isDispatchThread()); + Protocol.invokeAndWait(runnable); + + return parent.get() == null; + } + + return true; + } + +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/UnreachablePeersFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/UnreachablePeersFilter.java index fe6708ab3..d1f122400 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/UnreachablePeersFilter.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/filter/UnreachablePeersFilter.java @@ -1,52 +1,52 @@ -/*******************************************************************************
- * Copyright (c) 2011 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tcf.ui.filter;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.tcf.protocol.Protocol;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel;
-import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties;
-
-/**
- * Filter implementation filtering unreachable peers.
- */
-public class UnreachablePeersFilter extends ViewerFilter {
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
- */
- @Override
- public boolean select(Viewer viewer, Object parentElement, Object element) {
-
- // Filter only elements of simulator IPeerModel
- if (element instanceof IPeerModel) {
- final IPeerModel peerModel = (IPeerModel)element;
-
- // Determine the current action of the peer model
- final int[] state = new int[1];
- if (Protocol.isDispatchThread()) {
- state[0] = peerModel.getIntProperty(IPeerModelProperties.PROP_STATE);
- } else {
- Protocol.invokeAndWait(new Runnable() {
- @Override
- public void run() {
- state[0] = peerModel.getIntProperty(IPeerModelProperties.PROP_STATE);
- }
- });
- }
-
- return state[0] != IPeerModelProperties.STATE_NOT_REACHABLE && state[0] != IPeerModelProperties.STATE_ERROR;
- }
-
- return true;
- }
-
-}
+/******************************************************************************* + * Copyright (c) 2011 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tcf.ui.filter; + +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerFilter; +import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; + +/** + * Filter implementation filtering unreachable peers. + */ +public class UnreachablePeersFilter extends ViewerFilter { + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) + */ + @Override + public boolean select(Viewer viewer, Object parentElement, Object element) { + + // Filter only elements of simulator IPeerNode + if (element instanceof IPeerNode) { + final IPeerNode peerNode = (IPeerNode)element; + + // Determine the current action of the peer model + final int[] state = new int[1]; + if (Protocol.isDispatchThread()) { + state[0] = peerNode.getIntProperty(IPeerNodeProperties.PROP_STATE); + } else { + Protocol.invokeAndWait(new Runnable() { + @Override + public void run() { + state[0] = peerNode.getIntProperty(IPeerNodeProperties.PROP_STATE); + } + }); + } + + return state[0] != IPeerNodeProperties.STATE_NOT_REACHABLE && state[0] != IPeerNodeProperties.STATE_ERROR; + } + + return true; + } + +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/AbstractPeerModelEditorHandlerDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/AbstractPeerNodeEditorHandlerDelegate.java index 25b329d69..963f34125 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/AbstractPeerModelEditorHandlerDelegate.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/AbstractPeerNodeEditorHandlerDelegate.java @@ -12,24 +12,24 @@ package org.eclipse.tcf.te.tcf.ui.handler; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.Platform; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.ui.interfaces.handler.IEditorHandlerDelegate; import org.eclipse.tcf.te.ui.views.editor.EditorInput; import org.eclipse.ui.IEditorInput; /** - * AbstractPeerModelEditorHandlerDelegate + * AbstractPeerNodeEditorHandlerDelegate */ -public abstract class AbstractPeerModelEditorHandlerDelegate implements IEditorHandlerDelegate { +public abstract class AbstractPeerNodeEditorHandlerDelegate implements IEditorHandlerDelegate { /* (non-Javadoc) * @see org.eclipse.tcf.te.ui.interfaces.handler.IEditorHandlerDelegate#getEditorInput(java.lang.Object) */ @Override public IEditorInput getEditorInput(Object element) { - IPeerModel model = (IPeerModel)Platform.getAdapterManager().getAdapter(element, IPeerModel.class); + IPeerNode model = (IPeerNode)Platform.getAdapterManager().getAdapter(element, IPeerNode.class); if (model == null && element instanceof IAdaptable) { - model = (IPeerModel)((IAdaptable)element).getAdapter(IPeerModel.class); + model = (IPeerNode)((IAdaptable)element).getAdapter(IPeerNode.class); } return new EditorInput(model != null ? model : element); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/DeleteHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/DeleteHandler.java index 2c451a72f..d85fa1d91 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/DeleteHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/DeleteHandler.java @@ -13,7 +13,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import org.eclipse.core.commands.AbstractHandler; @@ -40,8 +39,8 @@ import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; import org.eclipse.tcf.te.runtime.statushandler.StatusHandlerUtil; import org.eclipse.tcf.te.runtime.utils.StatusHelper; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.ui.nls.Messages; @@ -116,12 +115,12 @@ public class DeleteHandler extends AbstractHandler { if (selection instanceof ITreeSelection && !selection.isEmpty()) { // Assume the selection to be deletable canDelete = true; - // Iterate the selection. All elements must be of type IPeerModel + // Iterate the selection. All elements must be of type IPeerNode for (TreePath treePath : ((ITreeSelection)selection).getPaths()) { // Get the element Object element = treePath.getLastSegment(); // This handler will take care of peer model nodes only - if (!(element instanceof IPeerModel)) { + if (!(element instanceof IPeerNode)) { canDelete = false; break; } @@ -131,37 +130,6 @@ public class DeleteHandler extends AbstractHandler { IDeleteHandlerDelegate delegate = service != null ? service.getDelegate(element, IDeleteHandlerDelegate.class) : null; // If a delegate is available, ask the handler first if the given element is currently deletable if (delegate != null) canDelete = delegate.canDelete(treePath); - // If the element is still marked deletable, apply the default check too - if (canDelete) { - // Determine if the selected peer model is static - boolean isStatic = isStatic((IPeerModel)element); - // Determine if the selected peer model represents an agent - // started by the current user - boolean isStartedByCurrentUser = isStartedByCurrentUser((IPeerModel)element); - // Static nodes can be handled the one way or the other. - // For dynamic nodes, "delete" means "remove from <category>", - // and this works only if the parent category is not "Neighborhood". - if (!isStatic) { - // Determine the parent category of the current tree path - ICategory category = treePath.getFirstSegment() instanceof ICategory ? (ICategory)treePath.getFirstSegment() : null; - if (category != null) { - if (IUIConstants.ID_CAT_NEIGHBORHOOD.equals(category.getId())) { - canDelete = false; - break; - } - else if (IUIConstants.ID_CAT_MY_TARGETS.equals(category.getId())) { - if (isStartedByCurrentUser) { - canDelete = false; - break; - } - } - else if (!IUIConstants.ID_CAT_FAVORITES.equals(category.getId())) { - canDelete = false; - break; - } - } - } - } if (!canDelete) { break; @@ -173,64 +141,6 @@ public class DeleteHandler extends AbstractHandler { } /** - * Determines if the given peer model node is a static node. - * - * @param node The peer model node. Must not be <code>null</code>. - * @return <code>True</code> if the node is static, <code>false</code> otherwise. - */ - private boolean isStatic(final IPeerModel node) { - Assert.isNotNull(node); - - final AtomicBoolean isStatic = new AtomicBoolean(); - - Runnable runnable = new Runnable() { - @Override - public void run() { - isStatic.set(node.isStatic()); - } - }; - - if (Protocol.isDispatchThread()) { - runnable.run(); - } - else { - Protocol.invokeAndWait(runnable); - } - - return isStatic.get(); - } - - /** - * Determines if the given peer model node represents an agent started - * by the current user. - * - * @param node The peer model node. Must not be <code>null</code>. - * @return <code>True</code> if the node represents and agent started by the current user, - * <code>false</code> otherwise. - */ - private boolean isStartedByCurrentUser(final IPeerModel node) { - Assert.isNotNull(node); - - final AtomicReference<String> username = new AtomicReference<String>(); - - Runnable runnable = new Runnable() { - @Override - public void run() { - username.set(node.getPeer().getUserName()); - } - }; - - if (Protocol.isDispatchThread()) { - runnable.run(); - } - else { - Protocol.invokeAndWait(runnable); - } - - return System.getProperty("user.name").equals(username.get()); //$NON-NLS-1$ - } - - /** * Internal helper class to describe the delete operation to perform. */ private static class Operation { @@ -238,7 +148,7 @@ public class DeleteHandler extends AbstractHandler { public enum TYPE { Remove, Unlink } // The element to operate on - public IPeerModel node; + public IPeerNode node; // The operation type to perform public TYPE type; // In case of an "unlink" operation, the parent category @@ -359,7 +269,7 @@ public class DeleteHandler extends AbstractHandler { Protocol.invokeLater(new Runnable() { @Override public void run() { - ILocatorModelRefreshService service = Model.getModel().getService(ILocatorModelRefreshService.class); + IPeerModelRefreshService service = Model.getModel().getService(IPeerModelRefreshService.class); // Refresh the model now (must be executed within the TCF dispatch thread) if (service != null) service.refresh(new Callback() { @Override @@ -391,22 +301,22 @@ public class DeleteHandler extends AbstractHandler { List<Operation> operations = new ArrayList<Operation>(); - // Iterate the selection. All elements must be of type IPeerModel + // Iterate the selection. All elements must be of type IPeerNode for (TreePath treePath : selection.getPaths()) { // Get the element Object element = treePath.getLastSegment(); - Assert.isTrue(element instanceof IPeerModel); - IPeerModel node = (IPeerModel)element; + Assert.isTrue(element instanceof IPeerNode); + IPeerNode node = (IPeerNode)element; - boolean isStatic = isStatic(node); ICategory category = treePath.getFirstSegment() instanceof ICategory ? (ICategory)treePath.getFirstSegment() : null; - if (category == null && isStatic) { + if (category == null) { Operation op = new Operation(); op.node = node; op.type = Operation.TYPE.Remove; operations.add(op); - } else if (category != null) { + } + else { // If the parent category is "Favorites", it is always // an "unlink" operation if (IUIConstants.ID_CAT_FAVORITES.equals(category.getId())) { @@ -423,11 +333,7 @@ public class DeleteHandler extends AbstractHandler { Operation op = new Operation(); op.node = node; - if (isStatic) { - op.type = Operation.TYPE.Remove; - } else { - op.type = Operation.TYPE.Unlink; - } + op.type = Operation.TYPE.Remove; op.parentCategory = category; operations.add(op); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RedirectHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RedirectHandler.java index 995e87b96..f46a4ab54 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RedirectHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RedirectHandler.java @@ -34,13 +34,13 @@ import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.statushandler.StatusHandlerUtil; import org.eclipse.tcf.te.runtime.utils.StatusHelper; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; -import org.eclipse.tcf.te.tcf.ui.dialogs.RedirectAgentSelectionDialog; +import org.eclipse.tcf.te.tcf.ui.dialogs.RedirectPeerSelectionDialog; import org.eclipse.tcf.te.tcf.ui.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.swt.DisplayUtil; @@ -63,11 +63,11 @@ public class RedirectHandler extends AbstractHandler { if (selection instanceof IStructuredSelection && !selection.isEmpty()) { // Redirect is supporting single selection only Object candidate = ((IStructuredSelection)selection).getFirstElement(); - if (candidate instanceof IPeerModel) { - final IPeerModel peerModel = (IPeerModel)candidate; + if (candidate instanceof IPeerNode) { + final IPeerNode peerNode = (IPeerNode)candidate; // Create the agent selection dialog - RedirectAgentSelectionDialog dialog = new RedirectAgentSelectionDialog(HandlerUtil.getActiveShell(event), null) { + RedirectPeerSelectionDialog dialog = new RedirectPeerSelectionDialog(HandlerUtil.getActiveShell(event), null) { @Override protected void configureTableViewer(TableViewer viewer) { Assert.isNotNull(viewer); @@ -80,7 +80,7 @@ public class RedirectHandler extends AbstractHandler { filter.add(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { - if (peerModel.equals(element)) { + if (peerNode.equals(element)) { return false; } return true; @@ -97,13 +97,13 @@ public class RedirectHandler extends AbstractHandler { selection = dialog.getSelection(); if (selection instanceof IStructuredSelection && !selection.isEmpty()) { candidate = ((IStructuredSelection)selection).getFirstElement(); - if (candidate instanceof IPeerModel) { - final IPeerModel proxy = (IPeerModel)candidate; + if (candidate instanceof IPeerNode) { + final IPeerNode proxy = (IPeerNode)candidate; Protocol.invokeLater(new Runnable() { @Override public void run() { - redirect(peerModel, proxy); + redirect(peerNode, proxy); DisplayUtil.safeAsyncExec(new Runnable() { @Override @@ -111,7 +111,7 @@ public class RedirectHandler extends AbstractHandler { IWorkbenchPart part = HandlerUtil.getActivePart(event); if (part instanceof CommonNavigator) { CommonNavigator navigator = (CommonNavigator)part; - navigator.selectReveal(new StructuredSelection(peerModel)); + navigator.selectReveal(new StructuredSelection(peerNode)); } } }); @@ -132,19 +132,19 @@ public class RedirectHandler extends AbstractHandler { * <p> * The method must be called from within the TCF dispatch thread. * - * @param peerModel The peer to redirect. Must not be <code>null</code>. + * @param peerNode The peer to redirect. Must not be <code>null</code>. * @param proxy The proxy. Must not be <code>null</code> */ - public void redirect(IPeerModel peerModel, IPeerModel proxy) { - Assert.isNotNull(peerModel); + public void redirect(IPeerNode peerNode, IPeerNode proxy) { + Assert.isNotNull(peerNode); Assert.isNotNull(proxy); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ // Get the peer attributes Map<String, String> attributes = new HashMap<String, String>(); - attributes.putAll(peerModel.getPeer().getAttributes()); + attributes.putAll(peerNode.getPeer().getAttributes()); // Set the redirection - attributes.put(IPeerModelProperties.PROP_REDIRECT_PROXY, proxy.getPeerId()); + attributes.put(IPeerNodeProperties.PROP_REDIRECT_PROXY, proxy.getPeerId()); try { IURIPersistenceService uRIPersistenceService = ServiceManager.getInstance().getService(IURIPersistenceService.class); @@ -156,22 +156,22 @@ public class RedirectHandler extends AbstractHandler { // Create a peer redirector PeerRedirector redirector = new PeerRedirector(proxy.getPeer(), attributes); // And update the instance - peerModel.setProperty(IPeerModelProperties.PROP_INSTANCE, redirector); + peerNode.setProperty(IPeerNodeProperties.PROP_INSTANCE, redirector); // Associate proxy (parent) and peer model (child) - peerModel.setParent(proxy); - Model.getModel().getService(ILocatorModelUpdateService.class).addChild(peerModel); + peerNode.setParent(proxy); + Model.getModel().getService(IPeerModelUpdateService.class).addChild(peerNode); // Trigger a refresh of the locator model in a later dispatch cycle Protocol.invokeLater(new Runnable() { @Override public void run() { - Model.getModel().getService(ILocatorModelRefreshService.class).refresh(null); + Model.getModel().getService(IPeerModelRefreshService.class).refresh(null); } }); } catch (IOException e) { String template = NLS.bind(Messages.RedirectHandler_error_redirectFailed, Messages.PossibleCause); - StatusHandlerUtil.handleStatus(StatusHelper.getStatus(e), peerModel, template, + StatusHandlerUtil.handleStatus(StatusHelper.getStatus(e), peerNode, template, Messages.RedirectHandler_error_title, IContextHelpIds.MESSAGE_REDIRECT_FAILED, this, null); } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RefreshHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RefreshHandler.java index 2fc20540a..bbc12e44a 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RefreshHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RefreshHandler.java @@ -27,9 +27,9 @@ import org.eclipse.tcf.te.runtime.callback.Callback; import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback; import org.eclipse.tcf.te.tcf.core.async.CallbackInvocationDelegate; import org.eclipse.tcf.te.tcf.locator.ScannerRunnable; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; import org.eclipse.tcf.te.ui.views.ViewsUtil; import org.eclipse.tcf.te.ui.views.interfaces.IUIConstants; import org.eclipse.ui.handlers.HandlerUtil; @@ -72,18 +72,18 @@ public class RefreshHandler extends AbstractHandler { // The selection must be a structured selection and must not be empty if (selection instanceof IStructuredSelection && !selection.isEmpty()) { // The list of locator model instances to refresh - List<ILocatorModel> locatorToRefresh = new ArrayList<ILocatorModel>(); - List<IPeerModel> peerToRefresh = new ArrayList<IPeerModel>(); + List<IPeerModel> locatorToRefresh = new ArrayList<IPeerModel>(); + List<IPeerNode> peerToRefresh = new ArrayList<IPeerNode>(); // Iterate the selection and determine the model instances Iterator<?> iterator = ((IStructuredSelection)selection).iterator(); while (iterator.hasNext()) { Object element = iterator.next(); - Assert.isTrue(element instanceof IPeerModel); - IPeerModel node = (IPeerModel)element; + Assert.isTrue(element instanceof IPeerNode); + IPeerNode node = (IPeerNode)element; // Get the associated locator model of the node - ILocatorModel model = (ILocatorModel)node.getAdapter(ILocatorModel.class); + IPeerModel model = (IPeerModel)node.getAdapter(IPeerModel.class); Assert.isNotNull(model); // If not yet in the list, add it if (!locatorToRefresh.contains(model)) { @@ -97,14 +97,14 @@ public class RefreshHandler extends AbstractHandler { // Trigger an refresh on all determined models and wait for the // refresh to complete. Once completed, fire the parent callback. AsyncCallbackCollector collector = new AsyncCallbackCollector(callback, new CallbackInvocationDelegate()); - for (ILocatorModel model : locatorToRefresh) { - final ILocatorModel finModel = model; + for (IPeerModel model : locatorToRefresh) { + final IPeerModel finModel = model; final ICallback innerCallback = new AsyncCallbackCollector.SimpleCollectorCallback(collector); Runnable runnable = new Runnable() { @Override public void run() { - finModel.getService(ILocatorModelRefreshService.class).refresh(new Callback() { + finModel.getService(IPeerModelRefreshService.class).refresh(new Callback() { @Override protected void internalDone(Object caller, IStatus status) { innerCallback.done(this, Status.OK_STATUS); @@ -115,8 +115,8 @@ public class RefreshHandler extends AbstractHandler { Protocol.invokeLater(runnable); } - for (IPeerModel model : peerToRefresh) { - final IPeerModel finModel = model; + for (IPeerNode model : peerToRefresh) { + final IPeerNode finModel = model; final ICallback innerCallback = new AsyncCallbackCollector.SimpleCollectorCallback(collector); Runnable runnable = new Runnable() { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RenameHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RenameHandler.java index cdb86621f..3a7be0ccf 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RenameHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/RenameHandler.java @@ -38,10 +38,10 @@ import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.statushandler.StatusHandlerUtil; import org.eclipse.tcf.te.runtime.utils.StatusHelper; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; import org.eclipse.tcf.te.tcf.ui.help.IContextHelpIds; @@ -103,8 +103,8 @@ public class RenameHandler extends AbstractHandler { Iterator<?> iterator = ((IStructuredSelection)selection).iterator(); while (iterator.hasNext()) { Object element = iterator.next(); - Assert.isTrue(element instanceof IPeerModel); - final IPeerModel node = (IPeerModel)element; + Assert.isTrue(element instanceof IPeerNode); + final IPeerNode node = (IPeerNode)element; RenameDialog dialog = createRenameDialog(shell, node); int ok = dialog.open(); @@ -135,7 +135,7 @@ public class RenameHandler extends AbstractHandler { IPeer newPeer = oldPeer instanceof PeerRedirector ? new PeerRedirector(((PeerRedirector)oldPeer).getParent(), attributes) : new Peer(attributes); // Update the peer node instance (silently) boolean changed = node.setChangeEventsEnabled(false); - node.setProperty(IPeerModelProperties.PROP_INSTANCE, newPeer); + node.setProperty(IPeerNodeProperties.PROP_INSTANCE, newPeer); if (changed) { node.setChangeEventsEnabled(true); } @@ -174,7 +174,7 @@ public class RenameHandler extends AbstractHandler { Protocol.invokeLater(new Runnable() { @Override public void run() { - final ILocatorModelRefreshService service = Model.getModel().getService(ILocatorModelRefreshService.class); + final IPeerModelRefreshService service = Model.getModel().getService(IPeerModelRefreshService.class); // Refresh the model now (must be executed within the TCF dispatch thread) if (service != null) { service.refresh(new Callback() { @@ -204,7 +204,7 @@ public class RenameHandler extends AbstractHandler { * * @return The renaming dialog. */ - private RenameDialog createRenameDialog(final Shell shell, final IPeerModel node) { + private RenameDialog createRenameDialog(final Shell shell, final IPeerNode node) { Assert.isNotNull(node); final AtomicReference<String> name = new AtomicReference<String>(); @@ -215,17 +215,15 @@ public class RenameHandler extends AbstractHandler { public void run() { name.set(node.getPeer().getName()); - ILocatorModel model = Model.getModel(); + IPeerModel model = Model.getModel(); Assert.isNotNull(model); - IPeerModel[] peers = model.getPeers(); - for (IPeerModel peer : peers) { - if (peer.isStatic()) { + IPeerNode[] peers = model.getPeers(); + for (IPeerNode peer : peers) { String name = peer.getPeer().getName(); Assert.isNotNull(name); if (!"".equals(name) && !usedNames.contains(name)) { //$NON-NLS-1$ usedNames.add(name.trim().toUpperCase()); } - } } } }; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/ResetRedirectHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/ResetRedirectHandler.java index 754d5d94e..c1229abf8 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/ResetRedirectHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/ResetRedirectHandler.java @@ -27,10 +27,10 @@ import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.statushandler.StatusHandlerUtil; import org.eclipse.tcf.te.runtime.utils.StatusHelper; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelUpdateService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.ui.nls.Messages; @@ -51,13 +51,13 @@ public class ResetRedirectHandler extends AbstractHandler { if (selection instanceof IStructuredSelection && !selection.isEmpty()) { // Redirect is supporting single selection only Object candidate = ((IStructuredSelection)selection).getFirstElement(); - if (candidate instanceof IPeerModel) { - final IPeerModel peerModel = (IPeerModel)candidate; + if (candidate instanceof IPeerNode) { + final IPeerNode peerNode = (IPeerNode)candidate; Protocol.invokeLater(new Runnable() { @Override public void run() { - resetRedirect(peerModel); + resetRedirect(peerNode); } }); } @@ -71,19 +71,19 @@ public class ResetRedirectHandler extends AbstractHandler { * <p> * The method must be called from within the TCF dispatch thread. * - * @param peerModel The peer to reset. Must not be <code>null</code>. + * @param peerNode The peer to reset. Must not be <code>null</code>. */ - public void resetRedirect(IPeerModel peerModel) { - Assert.isNotNull(peerModel); + public void resetRedirect(IPeerNode peerNode) { + Assert.isNotNull(peerNode); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ // Get the peer attributes Map<String, String> attributes = new HashMap<String, String>(); - attributes.putAll(peerModel.getPeer().getAttributes()); + attributes.putAll(peerNode.getPeer().getAttributes()); // Redirection set? - if (attributes.get(IPeerModelProperties.PROP_REDIRECT_PROXY) != null) { + if (attributes.get(IPeerNodeProperties.PROP_REDIRECT_PROXY) != null) { // Remove the redirection - attributes.remove(IPeerModelProperties.PROP_REDIRECT_PROXY); + attributes.remove(IPeerNodeProperties.PROP_REDIRECT_PROXY); try { // Save it @@ -96,22 +96,22 @@ public class ResetRedirectHandler extends AbstractHandler { uRIPersistenceService.write(peer, null); // And update the instance - peerModel.setProperty(IPeerModelProperties.PROP_INSTANCE, peer); + peerNode.setProperty(IPeerNodeProperties.PROP_INSTANCE, peer); // Reset proxy (parent) and peer model (child) association - Model.getModel().getService(ILocatorModelUpdateService.class).removeChild(peerModel); - peerModel.setParent(null); + Model.getModel().getService(IPeerModelUpdateService.class).removeChild(peerNode); + peerNode.setParent(null); // Trigger a refresh of the locator model in a later dispatch cycle Protocol.invokeLater(new Runnable() { @Override public void run() { - Model.getModel().getService(ILocatorModelRefreshService.class).refresh(null); + Model.getModel().getService(IPeerModelRefreshService.class).refresh(null); } }); } catch (IOException e) { String template = NLS.bind(Messages.ResetRedirectHandler_error_resetRedirectFailed, Messages.PossibleCause); - StatusHandlerUtil.handleStatus(StatusHelper.getStatus(e), peerModel, template, + StatusHandlerUtil.handleStatus(StatusHelper.getStatus(e), peerNode, template, Messages.ResetRedirectHandler_error_title, IContextHelpIds.MESSAGE_RESET_REDIRECT_FAILED, this, null); } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/StartDebugCommandHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/StartDebugCommandHandler.java index 3d62cd087..b53aaa320 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/StartDebugCommandHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/StartDebugCommandHandler.java @@ -30,7 +30,7 @@ import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IDebugService; import org.eclipse.tcf.te.runtime.services.interfaces.IDelegateService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.steps.StartDebuggerStep.IDelegate; import org.eclipse.tcf.te.ui.async.UICallbackInvocationDelegate; import org.eclipse.ui.IEditorInput; @@ -78,8 +78,8 @@ public class StartDebugCommandHandler extends AbstractHandler { Iterator<?> iterator = ((IStructuredSelection)selection).iterator(); while (iterator.hasNext()) { final Object element = iterator.next(); - if (element instanceof IPeerModel) { - startDebugger((IPeerModel)element, new AsyncCallbackCollector.SimpleCollectorCallback(collector)); + if (element instanceof IPeerNode) { + startDebugger((IPeerNode)element, new AsyncCallbackCollector.SimpleCollectorCallback(collector)); } } @@ -93,26 +93,26 @@ public class StartDebugCommandHandler extends AbstractHandler { /** * Starts the debugger for the given peer model node. * - * @param peerModel The peer model node. Must not be <code>null</code>. + * @param peerNode The peer model node. Must not be <code>null</code>. * @param callback The callback. Must not be <code>null</code>. */ - public void startDebugger(final IPeerModel peerModel, final ICallback callback) { - Assert.isNotNull(peerModel); + public void startDebugger(final IPeerNode peerNode, final ICallback callback) { + Assert.isNotNull(peerNode); Assert.isNotNull(callback); - IDebugService dbgService = ServiceManager.getInstance().getService(peerModel, IDebugService.class, false); + IDebugService dbgService = ServiceManager.getInstance().getService(peerNode, IDebugService.class, false); if (dbgService != null) { final IProgressMonitor monitor = new NullProgressMonitor(); IPropertiesContainer props = new PropertiesContainer(); - dbgService.attach(peerModel, props, monitor, new Callback() { + dbgService.attach(peerNode, props, monitor, new Callback() { @Override protected void internalDone(Object caller, IStatus status) { // Check if there is a delegate registered - IDelegateService service = ServiceManager.getInstance().getService(peerModel, IDelegateService.class, false); - IDelegate delegate = service != null ? service.getDelegate(peerModel, IDelegate.class) : null; + IDelegateService service = ServiceManager.getInstance().getService(peerNode, IDelegateService.class, false); + IDelegate delegate = service != null ? service.getDelegate(peerNode, IDelegate.class) : null; if (delegate != null) { - delegate.postAttachDebugger(peerModel, monitor, callback); + delegate.postAttachDebugger(peerNode, monitor, callback); } else { callback.done(caller, status); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/help/IContextHelpIds.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/help/IContextHelpIds.java index ce19cfe2a..4869fb75b 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/help/IContextHelpIds.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/help/IContextHelpIds.java @@ -45,7 +45,7 @@ public interface IContextHelpIds { /** * TCF agent selection dialog. */ - public final static String AGENT_SELECTION_DIALOG = PREFIX + "AgentSelectionDialog"; //$NON-NLS-1$ + public final static String AGENT_SELECTION_DIALOG = PREFIX + "PeerSelectionDialog"; //$NON-NLS-1$ // ***** Message dialog boxes ***** diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/PropertyTester.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/PropertyTester.java index 072d2142f..f52a2153d 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/PropertyTester.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/PropertyTester.java @@ -11,7 +11,7 @@ package org.eclipse.tcf.te.tcf.ui.internal; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.utils.SimulatorUtils; import org.eclipse.tcf.te.tcf.ui.handler.DeleteHandler; import org.eclipse.tcf.te.ui.views.navigator.nodes.NewWizardNode; @@ -39,8 +39,8 @@ public class PropertyTester extends org.eclipse.core.expressions.PropertyTester return ((NewWizardNode)receiver).getWizardId().equals(expectedValue); } - if ("isValidSimulatorConfig".equals(property) && receiver instanceof IPeerModel && expectedValue instanceof Boolean) { //$NON-NLS-1$ - SimulatorUtils.Result simulator = SimulatorUtils.getSimulatorService((IPeerModel)receiver); + if ("isValidSimulatorConfig".equals(property) && receiver instanceof IPeerNode && expectedValue instanceof Boolean) { //$NON-NLS-1$ + SimulatorUtils.Result simulator = SimulatorUtils.getSimulatorService((IPeerNode)receiver); boolean valid = simulator != null && simulator.service.isValidConfig(receiver, simulator.settings); return ((Boolean)expectedValue).booleanValue() == valid; } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/AdapterFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/AdapterFactory.java index 232c654eb..4aaea8277 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/AdapterFactory.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/AdapterFactory.java @@ -11,7 +11,7 @@ package org.eclipse.tcf.te.tcf.ui.internal.adapters; import org.eclipse.core.runtime.IAdapterFactory; import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.ui.views.editor.EditorInput; import org.eclipse.tcf.te.ui.views.interfaces.IEditorSaveAsAdapter; import org.eclipse.tcf.te.ui.views.interfaces.categories.ICategorizable; @@ -32,7 +32,7 @@ public class AdapterFactory implements IAdapterFactory { ILabelProvider.class, IPersistableElement.class, ICategorizable.class, - IPeerModel.class, + IPeerNode.class, IEditorSaveAsAdapter.class }; @@ -41,12 +41,12 @@ public class AdapterFactory implements IAdapterFactory { */ @Override public Object getAdapter(Object adaptableObject, Class adapterType) { - if (adaptableObject instanceof IPeerModel) { + if (adaptableObject instanceof IPeerNode) { if (ILabelProvider.class.equals(adapterType)) { return labelProvider; } if (IPersistableElement.class.equals(adapterType)) { - return new PersistablePeerModel((IPeerModel)adaptableObject); + return new PersistablePeerNode((IPeerNode)adaptableObject); } if (ICategorizable.class.equals(adapterType)) { return new CategorizableAdapter(adaptableObject); @@ -55,7 +55,7 @@ public class AdapterFactory implements IAdapterFactory { } if (adaptableObject instanceof EditorInput) { - if (IPeerModel.class.equals(adapterType)) { + if (IPeerNode.class.equals(adapterType)) { return ((EditorInput)adaptableObject).getAdapter(adapterType); } if (IEditorSaveAsAdapter.class.equals(adapterType)) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/CategorizableAdapter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/CategorizableAdapter.java index 5470f8023..783e3ab78 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/CategorizableAdapter.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/CategorizableAdapter.java @@ -9,11 +9,8 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.ui.internal.adapters; -import java.util.concurrent.atomic.AtomicBoolean; - import org.eclipse.core.runtime.Assert; -import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.ui.views.Managers; import org.eclipse.tcf.te.ui.views.interfaces.ICategory; import org.eclipse.tcf.te.ui.views.interfaces.IUIConstants; @@ -41,8 +38,8 @@ public class CategorizableAdapter implements ICategorizable { */ @Override public String getId() { - if (element instanceof IPeerModel) { - return ((IPeerModel)element).getPeerId(); + if (element instanceof IPeerNode) { + return ((IPeerNode)element).getPeerId(); } return null; } @@ -55,7 +52,7 @@ public class CategorizableAdapter implements ICategorizable { Assert.isNotNull(operation); Assert.isNotNull(category); - if (element instanceof IPeerModel) { + if (element instanceof IPeerNode) { // ADD: Parent and destination category are the same -> not valid if (OPERATION.ADD.equals(operation) && category.equals(parentCategory)) { return false; @@ -63,26 +60,6 @@ public class CategorizableAdapter implements ICategorizable { // ALL: Static peer's cannot be removed from or added to "My Targets" if (IUIConstants.ID_CAT_MY_TARGETS.equals(category.getId())) { - final AtomicBoolean isStatic = new AtomicBoolean(); - - Runnable runnable = new Runnable() { - @Override - public void run() { - isStatic.set(((IPeerModel)element).isStatic()); - } - }; - - if (Protocol.isDispatchThread()) { - runnable.run(); - } - else { - Protocol.invokeAndWait(runnable); - } - - if (isStatic.get()) { - return false; - } - return true; } @@ -103,7 +80,7 @@ public class CategorizableAdapter implements ICategorizable { Assert.isNotNull(operation); Assert.isNotNull(category); - if (element instanceof IPeerModel) { + if (element instanceof IPeerNode) { // ADD: element belongs to category -> not enabled if (OPERATION.ADD.equals(operation) && Managers.getCategoryManager().belongsTo(category.getId(), getId())) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/EditorSaveAsAdapter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/EditorSaveAsAdapter.java index 50e5425b8..849638109 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/EditorSaveAsAdapter.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/EditorSaveAsAdapter.java @@ -32,9 +32,9 @@ import org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableNodePropert import org.eclipse.tcf.te.runtime.persistence.interfaces.IURIPersistenceService; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.dialogs.RenameDialog; @@ -60,8 +60,8 @@ public class EditorSaveAsAdapter implements IEditorSaveAsAdapter { */ @Override public boolean isSaveAsAllowed(IEditorInput input) { - IPeerModel peerModel = (IPeerModel)input.getAdapter(IPeerModel.class); - if (peerModel != null) return peerModel.isStatic(); + IPeerNode peerNode = (IPeerNode)input.getAdapter(IPeerNode.class); + if (peerNode != null) return true; return false; } @@ -71,7 +71,7 @@ public class EditorSaveAsAdapter implements IEditorSaveAsAdapter { */ @Override public Object doSaveAs(IEditorInput input) { - IPeerModel model = (IPeerModel)input.getAdapter(IPeerModel.class); + IPeerNode model = (IPeerNode)input.getAdapter(IPeerNode.class); if (model != null) { Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); @@ -103,12 +103,12 @@ public class EditorSaveAsAdapter implements IEditorSaveAsAdapter { } persistenceService.write(new Peer(attrs), null); - final AtomicReference<IPeerModel> newPeer = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> newPeer = new AtomicReference<IPeerNode>(); final Callback cb = new Callback() { @Override protected void internalDone(Object caller, IStatus status) { // Get the peer model node from the model and select it in the tree - IPeerModel peerNode = Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelById(attrs.get(IPeer.ATTR_ID)); + IPeerNode peerNode = Model.getModel().getService(IPeerModelLookupService.class).lkupPeerModelById(attrs.get(IPeer.ATTR_ID)); newPeer.set(peerNode); if (peerNode != null) { // Refresh the viewer @@ -125,7 +125,7 @@ public class EditorSaveAsAdapter implements IEditorSaveAsAdapter { Protocol.invokeLater(new Runnable() { @Override public void run() { - ILocatorModelRefreshService service = Model.getModel().getService(ILocatorModelRefreshService.class); + IPeerModelRefreshService service = Model.getModel().getService(IPeerModelRefreshService.class); // Refresh the model now (must be executed within the TCF dispatch thread) if (service != null) { service.refresh(cb); @@ -150,16 +150,14 @@ public class EditorSaveAsAdapter implements IEditorSaveAsAdapter { @Override public void run() { // Get all peer model objects - IPeerModel[] peers = Model.getModel().getPeers(); + IPeerNode[] peers = Model.getModel().getPeers(); // Loop them and find the ones which are of our handled types - for (IPeerModel peerModel : peers) { - if (peerModel.isStatic()) { - String name = peerModel.getPeer().getName(); + for (IPeerNode peerNode : peers) { + String name = peerNode.getPeer().getName(); Assert.isNotNull(name); if (!"".equals(name) && !usedNames.contains(name)) { //$NON-NLS-1$ usedNames.add(name.trim().toUpperCase()); } - } } } }; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PeerModelFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PeerNodeFactory.java index 64b3b90f3..6275b7643 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PeerModelFactory.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PeerNodeFactory.java @@ -14,11 +14,11 @@ import java.util.concurrent.atomic.AtomicReference; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.tcf.protocol.Protocol; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelPeerNodeQueryService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelQueryService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.ui.views.editor.EditorInput; import org.eclipse.ui.IElementFactory; @@ -30,20 +30,20 @@ import org.eclipse.ui.internal.part.NullEditorInput; * from an external persistent storage and holds a peer id. */ @SuppressWarnings("restriction") -public class PeerModelFactory implements IElementFactory { +public class PeerNodeFactory implements IElementFactory { /* (non-Javadoc) * @see org.eclipse.ui.IElementFactory#createElement(org.eclipse.ui.IMemento) */ @Override public IAdaptable createElement(IMemento memento) { - final AtomicReference<IPeerModel> node = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> node = new AtomicReference<IPeerNode>(); final String peerId = memento.getString("peerId"); //$NON-NLS-1$ if (peerId != null) { Runnable runnable = new Runnable() { @Override public void run() { - node.set(Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelById(peerId)); + node.set(Model.getModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId)); } }; @@ -60,8 +60,8 @@ public class PeerModelFactory implements IElementFactory { Runnable runnable2 = new Runnable() { @Override public void run() { - Model.getModel().getService(ILocatorModelRefreshService.class).refresh(null); - node.set(Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelById(peerId)); + Model.getModel().getService(IPeerModelRefreshService.class).refresh(null); + node.set(Model.getModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId)); } }; @@ -69,8 +69,8 @@ public class PeerModelFactory implements IElementFactory { } if (node.get() != null) { - ILocatorModel model = node.get().getModel(); - ILocatorModelPeerNodeQueryService queryService = model.getService(ILocatorModelPeerNodeQueryService.class); + IPeerModel model = node.get().getModel(); + IPeerModelQueryService queryService = model.getService(IPeerModelQueryService.class); queryService.queryRemoteServices(node.get()); } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PersistablePeerModel.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PersistablePeerNode.java index 82d155f55..78749b345 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PersistablePeerModel.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PersistablePeerNode.java @@ -9,24 +9,22 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.ui.internal.adapters; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.ui.IMemento; import org.eclipse.ui.IPersistableElement; /** - * The persistable element implementation for an IPeerModel. + * The persistable element implementation for an IPeerNode. */ -public class PersistablePeerModel implements IPersistableElement { +public class PersistablePeerNode implements IPersistableElement { // The peer model to be persisted. - private IPeerModel peerModel; - private boolean isStatic; + private IPeerNode peerNode; /** * Constructor */ - public PersistablePeerModel(IPeerModel peerModel) { - this.peerModel = peerModel; - isStatic = peerModel.isStatic(); + public PersistablePeerNode(IPeerNode peerNode) { + this.peerNode = peerNode; } /* @@ -35,9 +33,7 @@ public class PersistablePeerModel implements IPersistableElement { */ @Override public void saveState(IMemento memento) { - if (isStatic) { - memento.putString("peerId", peerModel.getPeerId()); //$NON-NLS-1$ - } + memento.putString("peerId", peerNode.getPeerId()); //$NON-NLS-1$ } /* @@ -46,9 +42,6 @@ public class PersistablePeerModel implements IPersistableElement { */ @Override public String getFactoryId() { - if (isStatic) { - return "org.eclipse.tcf.te.ui.views.peerFactory"; //$NON-NLS-1$ - } - return null; + return "org.eclipse.tcf.te.ui.views.peerFactory"; //$NON-NLS-1$ } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/services/DefaultContextService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/services/DefaultContextService.java index 8b22e38a3..159847634 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/services/DefaultContextService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/services/DefaultContextService.java @@ -25,11 +25,11 @@ import org.eclipse.tcf.te.runtime.events.EventManager; import org.eclipse.tcf.te.runtime.persistence.history.HistoryManager; import org.eclipse.tcf.te.runtime.services.AbstractService; import org.eclipse.tcf.te.tcf.core.interfaces.IPeerType; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; @@ -54,8 +54,8 @@ public class DefaultContextService extends AbstractService implements IDefaultCo * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService#getCandidates(java.lang.Object, org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService.IContextFilter) */ @Override - public IPeerModel[] getCandidates(Object currentSelection, IContextFilter filter) { - List<IPeerModel> candidates = new ArrayList<IPeerModel>(); + public IPeerNode[] getCandidates(Object currentSelection, IContextFilter filter) { + List<IPeerNode> candidates = new ArrayList<IPeerNode>(); // add given selection first if (currentSelection instanceof IStructuredSelection) { @@ -71,26 +71,26 @@ public class DefaultContextService extends AbstractService implements IDefaultCo // add system management selection addCandidates(getPartSelection(PART_ID_TE_VIEW), filter, candidates); - return candidates.toArray(new IPeerModel[candidates.size()]); + return candidates.toArray(new IPeerNode[candidates.size()]); } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService#setDefaultContext(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService#setDefaultContext(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode) */ @Override - public void setDefaultContext(final IPeerModel peerModel) { - if (peerModel != null) { - HistoryManager.getInstance().add(getClass().getName(), peerModel.getPeerId()); - EventManager.getInstance().fireEvent(new ChangeEvent(this, ChangeEvent.ID_ADDED, peerModel, peerModel)); + public void setDefaultContext(final IPeerNode peerNode) { + if (peerNode != null) { + HistoryManager.getInstance().add(getClass().getName(), peerNode.getPeerId()); + EventManager.getInstance().fireEvent(new ChangeEvent(this, ChangeEvent.ID_ADDED, peerNode, peerNode)); final AtomicReference<String> type = new AtomicReference<String>(); Protocol.invokeAndWait(new Runnable() { @Override public void run() { - type.set(peerModel.getPeer().getAttributes().get((IPeerModelProperties.PROP_TYPE))); + type.set(peerNode.getPeer().getAttributes().get((IPeerNodeProperties.PROP_TYPE))); } }); - HistoryManager.getInstance().add(type.get() != null ? type.get() : IPeerType.TYPE_GENERIC, peerModel.getPeerId()); + HistoryManager.getInstance().add(type.get() != null ? type.get() : IPeerType.TYPE_GENERIC, peerNode.getPeerId()); } else { HistoryManager.getInstance().clear(getClass().getName()); @@ -102,11 +102,11 @@ public class DefaultContextService extends AbstractService implements IDefaultCo * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService#getDefaultContext(org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService.IContextFilter) */ @Override - public IPeerModel getDefaultContext(IContextFilter filter) { + public IPeerNode getDefaultContext(IContextFilter filter) { for (String peerId : HistoryManager.getInstance().getHistory(getClass().getName())) { - IPeerModel peerModel = addCandidate(getPeerModel(peerId), filter, null); - if (peerModel != null) { - return peerModel; + IPeerNode peerNode = addCandidate(getPeerModel(peerId), filter, null); + if (peerNode != null) { + return peerNode; } } @@ -114,52 +114,52 @@ public class DefaultContextService extends AbstractService implements IDefaultCo } - private IPeerModel addCandidate(IPeerModel peerModel, IContextFilter filter, List<IPeerModel> candidates) { - if (peerModel != null && (filter == null || filter.select(peerModel))) { - if (candidates != null && !candidates.contains(peerModel)) { - candidates.add(peerModel); + private IPeerNode addCandidate(IPeerNode peerNode, IContextFilter filter, List<IPeerNode> candidates) { + if (peerNode != null && (filter == null || filter.select(peerNode))) { + if (candidates != null && !candidates.contains(peerNode)) { + candidates.add(peerNode); } - return peerModel; + return peerNode; } return null; } - private void addCandidates(IStructuredSelection selection, IContextFilter filter, List<IPeerModel> candidates) { + private void addCandidates(IStructuredSelection selection, IContextFilter filter, List<IPeerNode> candidates) { if (selection != null) { Iterator<Object> it = selection.iterator(); while (it.hasNext()) { - addCandidate((IPeerModel)Platform.getAdapterManager().getAdapter(it.next(), IPeerModel.class), filter, candidates); + addCandidate((IPeerNode)Platform.getAdapterManager().getAdapter(it.next(), IPeerNode.class), filter, candidates); } } } - private void addCandidates(IPeerModel[] peerModels, IContextFilter filter, List<IPeerModel> candidates) { - for (IPeerModel peerModel : peerModels) { - addCandidate(peerModel, filter, candidates); + private void addCandidates(IPeerNode[] peerModels, IContextFilter filter, List<IPeerNode> candidates) { + for (IPeerNode peerNode : peerModels) { + addCandidate(peerNode, filter, candidates); } } - private IPeerModel[] getDefaultSelections(IContextFilter filter) { - List<IPeerModel> candidates = new ArrayList<IPeerModel>(); + private IPeerNode[] getDefaultSelections(IContextFilter filter) { + List<IPeerNode> candidates = new ArrayList<IPeerNode>(); for (String peerId : HistoryManager.getInstance().getHistory(getClass().getName())) { addCandidate(getPeerModel(peerId), filter, candidates); } - return candidates.toArray(new IPeerModel[candidates.size()]); + return candidates.toArray(new IPeerNode[candidates.size()]); } - private IPeerModel getPeerModel(final String peerId) { + private IPeerNode getPeerModel(final String peerId) { if (peerId != null) { - final AtomicReference<IPeerModel> peerModel = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> peerNode = new AtomicReference<IPeerNode>(); Runnable runnable = new Runnable() { @Override public void run() { - ILocatorModel model = Model.getModel(); + IPeerModel model = Model.getModel(); Assert.isNotNull(model); - peerModel.set(model.getService(ILocatorModelLookupService.class).lkupPeerModelById(peerId)); + peerNode.set(model.getService(IPeerModelLookupService.class).lkupPeerModelById(peerId)); } }; @@ -170,7 +170,7 @@ public class DefaultContextService extends AbstractService implements IDefaultCo Protocol.invokeAndWait(runnable); } - return peerModel.get(); + return peerNode.get(); } return null; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSection.java index 9c6d99210..f7d27346d 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSection.java @@ -19,7 +19,7 @@ import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.ui.forms.CustomFormToolkit; import org.eclipse.tcf.te.ui.tables.TableViewerComparator; import org.eclipse.tcf.te.ui.tables.properties.NodePropertiesTableControl; @@ -32,7 +32,7 @@ import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; */ public class PeerGeneralSection extends AbstractPropertySection { // The peer to be displayed. - private IPeerModel peer; + private IPeerNode peer; // The table control to display the properties. private NodePropertiesTableControl tableControl; // The form toolkit @@ -90,9 +90,9 @@ public class PeerGeneralSection extends AbstractPropertySection { super.setInput(part, selection); Assert.isTrue(selection instanceof IStructuredSelection); Object input = ((IStructuredSelection) selection).getFirstElement(); - this.peer = (IPeerModel)Platform.getAdapterManager().getAdapter(input, IPeerModel.class); - // Assert.isTrue(input instanceof IPeerModel); - // this.peer = (IPeerModel) input; + this.peer = (IPeerNode)Platform.getAdapterManager().getAdapter(input, IPeerNode.class); + // Assert.isTrue(input instanceof IPeerNode); + // this.peer = (IPeerNode) input; } /* (non-Javadoc) diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSectionContentProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSectionContentProvider.java index 8d42bebd0..3f26b714b 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSectionContentProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSectionContentProvider.java @@ -26,7 +26,7 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.ui.interfaces.services.INodePropertiesTableFilterUIDelegate; import org.eclipse.tcf.te.ui.tables.properties.NodePropertiesTableTableNode; import org.eclipse.tcf.te.ui.views.extensions.LabelProviderDelegateExtensionPointManager; @@ -65,7 +65,7 @@ public class PeerGeneralSectionContentProvider implements IStructuredContentProv public Object[] getElements(final Object inputElement) { List<NodePropertiesTableTableNode> nodes = new ArrayList<NodePropertiesTableTableNode>(); - if (inputElement instanceof IPeerModel) { + if (inputElement instanceof IPeerNode) { // Get the associated label provider IUIService service = ServiceManager.getInstance().getService(inputElement, IUIService.class); ILabelProvider provider = service != null ? service.getDelegate(inputElement, ILabelProvider.class) : null; @@ -74,12 +74,12 @@ public class PeerGeneralSectionContentProvider implements IStructuredContentProv final Map<String, Object> properties = new HashMap<String, Object>(); // And get all native properties of the peer if (Protocol.isDispatchThread()) { - properties.putAll(((IPeerModel)inputElement).getPeer().getAttributes()); + properties.putAll(((IPeerNode)inputElement).getPeer().getAttributes()); } else { Protocol.invokeAndWait(new Runnable() { @Override public void run() { - properties.putAll(((IPeerModel)inputElement).getPeer().getAttributes()); + properties.putAll(((IPeerNode)inputElement).getPeer().getAttributes()); } }); } @@ -145,10 +145,10 @@ public class PeerGeneralSectionContentProvider implements IStructuredContentProv } // If the input is a peer model node, set it directly - if (newInput instanceof IPeerModel) element = newInput; + if (newInput instanceof IPeerNode) element = newInput; // Determine the section header text - if (element instanceof IPeerModel) { + if (element instanceof IPeerNode) { sectionTitle = NLS.bind(org.eclipse.tcf.te.ui.nls.Messages.NodePropertiesTableControl_section_title, "Peer"); //$NON-NLS-1$ } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSectionFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSectionFilter.java index e1709f7ee..2d0209f2d 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSectionFilter.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/tabbed/PeerGeneralSectionFilter.java @@ -11,7 +11,7 @@ package org.eclipse.tcf.te.tcf.ui.internal.tabbed; import org.eclipse.jface.viewers.IFilter; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Peer model node general section filter implementation. @@ -23,7 +23,7 @@ public class PeerGeneralSectionFilter implements IFilter { */ @Override public boolean select(Object element) { - return element instanceof IPeerModel; + return element instanceof IPeerNode; } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ContentProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ContentProvider.java index 0aea57a77..4690431d8 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ContentProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ContentProvider.java @@ -28,12 +28,12 @@ import org.eclipse.tcf.te.runtime.concurrent.util.ExecutorsUtil; import org.eclipse.tcf.te.tcf.locator.ScannerRunnable; import org.eclipse.tcf.te.tcf.locator.activator.CoreBundleActivator; import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerRedirector; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.activator.UIPlugin; import org.eclipse.tcf.te.tcf.ui.internal.preferences.IPreferenceKeys; @@ -102,13 +102,13 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent /** * Determines if the given peer model node is a value-add. * - * @param peerModel The peer model node. Must not be <code>null</code>. + * @param peerNode The peer model node. Must not be <code>null</code>. * @return <code>True</code> if the peer model node is a value-add, <code>false</code> otherwise. */ - /* default */ final boolean isValueAdd(IPeerModel peerModel) { - Assert.isNotNull(peerModel); + /* default */ final boolean isValueAdd(IPeerNode peerNode) { + Assert.isNotNull(peerNode); - String value = peerModel.getPeer().getAttributes().get("ValueAdd"); //$NON-NLS-1$ + String value = peerNode.getPeer().getAttributes().get("ValueAdd"); //$NON-NLS-1$ boolean isValueAdd = value != null && ("1".equals(value.trim()) || Boolean.parseBoolean(value.trim())); //$NON-NLS-1$ return isValueAdd; @@ -117,22 +117,22 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent /** * Determines if the given peer model node is filtered from the view completely. * - * @param peerModel The peer model node. Must not be <code>null</code>. + * @param peerNode The peer model node. Must not be <code>null</code>. * @return <code>True</code> if filtered, <code>false</code> otherwise. */ - /* default */ final boolean isFiltered(IPeerModel peerModel) { - Assert.isNotNull(peerModel); + /* default */ final boolean isFiltered(IPeerNode peerNode) { + Assert.isNotNull(peerNode); boolean filtered = false; boolean hideValueAdds = CoreBundleActivator.getScopedPreferences().getBoolean(org.eclipse.tcf.te.tcf.locator.interfaces.preferences.IPreferenceKeys.PREF_HIDE_VALUEADDS); - filtered |= isValueAdd(peerModel) && hideValueAdds; + filtered |= isValueAdd(peerNode) && hideValueAdds; if (!showInvisible) { - filtered |= !peerModel.isVisible(); + filtered |= !peerNode.isVisible(); } - filtered |= peerModel.getPeer().getName() != null - && peerModel.getPeer().getName().endsWith("Command Server"); //$NON-NLS-1$ + filtered |= peerNode.getPeer().getName() != null + && peerNode.getPeer().getName().endsWith("Command Server"); //$NON-NLS-1$ return filtered; } @@ -169,13 +169,13 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent } // If it is the locator model, get the peers - if (parentElement instanceof ILocatorModel) { - final ILocatorModel model = (ILocatorModel)parentElement; - final IPeerModel[] peers = model.getPeers(); - final List<IPeerModel> candidates = new ArrayList<IPeerModel>(); + if (parentElement instanceof IPeerModel) { + final IPeerModel model = (IPeerModel)parentElement; + final IPeerNode[] peers = model.getPeers(); + final List<IPeerNode> candidates = new ArrayList<IPeerNode>(); if (IUIConstants.ID_CAT_FAVORITES.equals(catID)) { - for (IPeerModel peer : peers) { + for (IPeerNode peer : peers) { ICategorizable categorizable = (ICategorizable)peer.getAdapter(ICategorizable.class); if (categorizable == null) { categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(peer, ICategorizable.class); @@ -189,7 +189,7 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent } } else if (IUIConstants.ID_CAT_MY_TARGETS.equals(catID)) { - for (IPeerModel peer : peers) { + for (IPeerNode peer : peers) { // Check for filtered nodes (Value-add's and Proxies) if (isFiltered(peer)) { continue; @@ -201,8 +201,6 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent } Assert.isNotNull(categorizable); - boolean isStatic = peer.isStatic(); - // Static peers, or if launched by current user -> add automatically to "My Targets" boolean startedByCurrentUser = System.getProperty("user.name").equals(peer.getPeer().getUserName()); //$NON-NLS-1$ if (!startedByCurrentUser) { @@ -213,7 +211,7 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent } boolean isMyTargets = Managers.getCategoryManager().belongsTo(catID, categorizable.getId()); - if (!isMyTargets && (isStatic || startedByCurrentUser)) { + if (!isMyTargets && startedByCurrentUser) { // "Value-add's" are not saved to the category persistence automatically Managers.getCategoryManager().addTransient(catID, categorizable.getId()); isMyTargets = true; @@ -225,42 +223,40 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent } } else if (IUIConstants.ID_CAT_NEIGHBORHOOD.equals(catID)) { - for (IPeerModel peer : peers) { - // Check for filtered nodes (Value-add's and Proxies) - if (isFiltered(peer)) { - continue; - } - - ICategorizable categorizable = (ICategorizable)peer.getAdapter(ICategorizable.class); - if (categorizable == null) { - categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(peer, ICategorizable.class); - } - Assert.isNotNull(categorizable); - - boolean isStatic = peer.isStatic(); - - boolean startedByCurrentUser = System.getProperty("user.name").equals(peer.getPeer().getUserName()); //$NON-NLS-1$ - if (startedByCurrentUser) { - // If the "My Targets" category is not visible, ignore the startedByCurrentUser flag - if (myTargetsCat != null && !myTargetsCat.isEnabled()) { - startedByCurrentUser = false; - } - } - - boolean isNeighborhood = Managers.getCategoryManager().belongsTo(catID, categorizable.getId()); - if (!isNeighborhood && !isStatic && !startedByCurrentUser) { - // "Neighborhood" is always transient - Managers.getCategoryManager().addTransient(catID, categorizable.getId()); - isNeighborhood = true; - } - - if (isNeighborhood && !candidates.contains(peer)) { - candidates.add(peer); - } - } +// for (IPeerNode peer : peers) { +// // Check for filtered nodes (Value-add's and Proxies) +// if (isFiltered(peer)) { +// continue; +// } +// +// ICategorizable categorizable = (ICategorizable)peer.getAdapter(ICategorizable.class); +// if (categorizable == null) { +// categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(peer, ICategorizable.class); +// } +// Assert.isNotNull(categorizable); +// +// boolean startedByCurrentUser = System.getProperty("user.name").equals(peer.getPeer().getUserName()); //$NON-NLS-1$ +// if (startedByCurrentUser) { +// // If the "My Targets" category is not visible, ignore the startedByCurrentUser flag +// if (myTargetsCat != null && !myTargetsCat.isEnabled()) { +// startedByCurrentUser = false; +// } +// } +// +// boolean isNeighborhood = Managers.getCategoryManager().belongsTo(catID, categorizable.getId()); +// if (!isNeighborhood && !isStatic && !startedByCurrentUser) { +// // "Neighborhood" is always transient +// Managers.getCategoryManager().addTransient(catID, categorizable.getId()); +// isNeighborhood = true; +// } +// +// if (isNeighborhood && !candidates.contains(peer)) { +// candidates.add(peer); +// } +// } } else if (catID != null) { - for (IPeerModel peer : peers) { + for (IPeerNode peer : peers) { ICategorizable categorizable = (ICategorizable)peer.getAdapter(ICategorizable.class); if (categorizable == null) { categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(peer, ICategorizable.class); @@ -275,7 +271,7 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent } } else { - for (IPeerModel peer : peers) { + for (IPeerNode peer : peers) { // Check for filtered nodes (Value-add's and Proxies) if (isFiltered(peer)) { continue; @@ -286,12 +282,12 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent } } - children = candidates.toArray(new IPeerModel[candidates.size()]); + children = candidates.toArray(new IPeerNode[candidates.size()]); } // If it is a peer model itself, get the child peers - else if (parentElement instanceof IPeerModel) { - String parentPeerId = ((IPeerModel)parentElement).getPeerId(); - List<IPeerModel> candidates = Model.getModel().getChildren(parentPeerId); + else if (parentElement instanceof IPeerNode) { + String parentPeerId = ((IPeerNode)parentElement).getPeerId(); + List<IPeerNode> candidates = Model.getModel().getChildren(parentPeerId); if (candidates != null && candidates.size() > 0) { PeerRedirectorGroupNode rootNode = roots.get(parentPeerId); if (rootNode == null) { @@ -306,15 +302,15 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent // If it is a remote peer discover root node, return the children // for the associated peer id. else if (parentElement instanceof PeerRedirectorGroupNode) { - List<IPeerModel> candidates = Model.getModel().getChildren(((PeerRedirectorGroupNode)parentElement).peerId); + List<IPeerNode> candidates = Model.getModel().getChildren(((PeerRedirectorGroupNode)parentElement).peerId); if (candidates != null && candidates.size() > 0) { // Mark all candidates to be included in the scan process and // schedule an scan asynchronously - for (final IPeerModel candidate: candidates) { + for (final IPeerNode candidate: candidates) { Protocol.invokeLater(new Runnable() { @Override public void run() { - candidate.setProperty(IPeerModelProperties.PROP_SCANNER_EXCLUDE, false); + candidate.setProperty(IPeerNodeProperties.PROP_SCANNER_EXCLUDE, false); ScannerRunnable runnable = new ScannerRunnable(null, candidate); runnable.run(); @@ -344,10 +340,10 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent @Override public Object getParent(final Object element) { // If it is a peer model node, return the parent locator model - if (element instanceof IPeerModel) { + if (element instanceof IPeerNode) { // If it is a peer redirector, return the parent remote peer discover root node - if (((IPeerModel)element).getPeer() instanceof IPeerRedirector) { - IPeer parentPeer = ((IPeerRedirector)((IPeerModel)element).getPeer()).getParent(); + if (((IPeerNode)element).getPeer() instanceof IPeerRedirector) { + IPeer parentPeer = ((IPeerRedirector)((IPeerNode)element).getPeer()).getParent(); String parentPeerId = parentPeer.getID(); if (!roots.containsKey(parentPeerId)) { roots.put(parentPeer.getID(), new PeerRedirectorGroupNode(parentPeerId)); @@ -357,21 +353,21 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent // Determine the parent category node ICategory category = null; - String[] categoryIds = Managers.getCategoryManager().getCategoryIds(((IPeerModel)element).getPeerId()); + String[] categoryIds = Managers.getCategoryManager().getCategoryIds(((IPeerNode)element).getPeerId()); // If we have more than one, take the first one as parent category. // To get all parents, the getParents(Object) method must be called if (categoryIds != null && categoryIds.length > 0) { category = CategoriesExtensionPointManager.getInstance().getCategory(categoryIds[0], false); } - return category != null ? category : ((IPeerModel)element).getModel(); + return category != null ? category : ((IPeerNode)element).getModel(); } else if (element instanceof PeerRedirectorGroupNode) { // Return the parent peer model node - final AtomicReference<IPeerModel> parent = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> parent = new AtomicReference<IPeerNode>(); final Runnable runnable = new Runnable() { @Override public void run() { - parent.set(Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelById(((PeerRedirectorGroupNode)element).peerId)); + parent.set(Model.getModel().getService(IPeerModelLookupService.class).lkupPeerModelById(((PeerRedirectorGroupNode)element).peerId)); } }; @@ -402,8 +398,8 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent // is consuming only the last segment. List<TreePath> pathes = new ArrayList<TreePath>(); - if (element instanceof IPeerModel) { - if (Managers.getCategoryManager().belongsTo(IUIConstants.ID_CAT_FAVORITES, ((IPeerModel)element).getPeerId())) { + if (element instanceof IPeerNode) { + if (Managers.getCategoryManager().belongsTo(IUIConstants.ID_CAT_FAVORITES, ((IPeerNode)element).getPeerId())) { // Get the "Favorites" category ICategory favCategory = CategoriesExtensionPointManager.getInstance().getCategory(IUIConstants.ID_CAT_FAVORITES, false); if (favCategory != null) { @@ -484,7 +480,7 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent */ @Override public void inputChanged(final Viewer viewer, Object oldInput, Object newInput) { - final ILocatorModel model = Model.getModel(); + final IPeerModel model = Model.getModel(); // Create and attach the model listener if not yet done if (modelListener == null && model != null && viewer instanceof CommonViewer) { @@ -509,7 +505,7 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent Protocol.invokeLater(new Runnable() { @Override public void run() { - model.getService(ILocatorModelRefreshService.class).refresh(null); + model.getService(IPeerModelRefreshService.class).refresh(null); } }); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ModelListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ModelListener.java index a6ee0b8ec..269bcc313 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ModelListener.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ModelListener.java @@ -15,8 +15,8 @@ import org.eclipse.swt.widgets.Tree; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IAdapterService; import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter; import org.eclipse.tcf.te.ui.views.editor.EditorInput; import org.eclipse.tcf.te.ui.views.interfaces.IUIConstants; @@ -32,7 +32,7 @@ import org.eclipse.ui.navigator.CommonViewer; * TCF locator model listener implementation. */ public class ModelListener extends ModelAdapter { - private final ILocatorModel parentModel; + private final IPeerModel parentModel; /* default */ final CommonViewer viewer; /** @@ -41,7 +41,7 @@ public class ModelListener extends ModelAdapter { * @param parent The parent locator model. Must not be <code>null</code>. * @param viewer The common viewer instance. Must not be <code>null</code>. */ - public ModelListener(ILocatorModel parent, CommonViewer viewer) { + public ModelListener(IPeerModel parent, CommonViewer viewer) { Assert.isNotNull(parent); Assert.isNotNull(viewer); @@ -50,10 +50,10 @@ public class ModelListener extends ModelAdapter { } /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter#locatorModelChanged(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel, org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel, boolean) + * @see org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter#locatorModelChanged(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel, org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode, boolean) */ @Override - public void locatorModelChanged(final ILocatorModel model, final IPeerModel peerModel, final boolean added) { + public void locatorModelChanged(final IPeerModel model, final IPeerNode peerNode, final boolean added) { if (parentModel.equals(model)) { // Locator model changed -> refresh the tree Tree tree = viewer.getTree(); @@ -69,17 +69,17 @@ public class ModelListener extends ModelAdapter { }); } - if (peerModel != null) { + if (peerNode != null) { // Check if the peer model node can be adapted to IModelListener. - IAdapterService service = ServiceManager.getInstance().getService(peerModel, IAdapterService.class); - IModelListener listener = service != null ? service.getAdapter(peerModel, IModelListener.class) : null; + IAdapterService service = ServiceManager.getInstance().getService(peerNode, IAdapterService.class); + IModelListener listener = service != null ? service.getAdapter(peerNode, IModelListener.class) : null; // If yes -> Invoke the adapted model listener instance if (listener != null) { - listener.locatorModelChanged(model, peerModel, added); + listener.locatorModelChanged(model, peerNode, added); } // If no -> Default behavior for dynamic discovered peers is to close the editor (if any). // For static peers, leave the editor untouched. - else if (!added && !peerModel.isStatic()) { + else if (!added) { Display display = PlatformUI.getWorkbench().getDisplay(); if (display != null && !display.isDisposed()) { display.asyncExec(new Runnable() { @@ -91,7 +91,7 @@ public class ModelListener extends ModelAdapter { // Get the active page IWorkbenchPage page = window.getActivePage(); // Create the editor input object - IEditorInput input = new EditorInput(peerModel); + IEditorInput input = new EditorInput(peerNode); // Lookup the editors matching the editor input IEditorReference[] editors = page.findEditors(input, IUIConstants.ID_EDITOR, IWorkbenchPage.MATCH_INPUT); if (editors != null && editors.length > 0) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/PeerLabelProviderDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/PeerLabelProviderDelegate.java index 8ca09120c..bac4216d5 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/PeerLabelProviderDelegate.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/PeerLabelProviderDelegate.java @@ -11,7 +11,6 @@ package org.eclipse.tcf.te.tcf.ui.navigator; import java.util.HashMap; import java.util.Map; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import org.eclipse.core.runtime.Assert; @@ -22,8 +21,8 @@ import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.services.interfaces.delegates.ILabelProviderDelegate; import org.eclipse.tcf.te.runtime.utils.net.IPAddressUtil; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.activator.UIPlugin; import org.eclipse.tcf.te.tcf.ui.internal.ImageConsts; @@ -42,7 +41,7 @@ public class PeerLabelProviderDelegate extends LabelProvider implements ILabelDe */ @Override public String getText(final Object element) { - if (element instanceof IPeerModel || element instanceof IPeer) { + if (element instanceof IPeerNode || element instanceof IPeer) { StringBuilder builder = new StringBuilder(); // Copy the peer node and peer attributes @@ -51,9 +50,9 @@ public class PeerLabelProviderDelegate extends LabelProvider implements ILabelDe Runnable runnable = new Runnable() { @Override public void run() { - if (element instanceof IPeerModel) { - attrs.putAll(((IPeerModel)element).getProperties()); - attrs.putAll(((IPeerModel)element).getPeer().getAttributes()); + if (element instanceof IPeerNode) { + attrs.putAll(((IPeerNode)element).getProperties()); + attrs.putAll(((IPeerNode)element).getPeer().getAttributes()); } else if (element instanceof IPeer) { attrs.putAll(((IPeer)element).getAttributes()); @@ -123,7 +122,7 @@ public class PeerLabelProviderDelegate extends LabelProvider implements ILabelDe Runnable runnable = new Runnable() { @Override public void run() { - count.set(Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelByName(label).length); + count.set(Model.getModel().getService(IPeerModelLookupService.class).lkupPeerModelByName(label).length); } }; @@ -141,30 +140,8 @@ public class PeerLabelProviderDelegate extends LabelProvider implements ILabelDe */ @Override public Image getImage(final Object element) { - if (element instanceof IPeerModel || element instanceof IPeer) { - final AtomicBoolean isStatic = new AtomicBoolean(); - - Runnable runnable = new Runnable() { - @Override - public void run() { - if (element instanceof IPeerModel) { - isStatic.set(((IPeerModel)element).isStatic()); - } - else if (element instanceof IPeer) { - String value = ((IPeer)element).getAttributes().get("static.transient"); //$NON-NLS-1$ - isStatic.set(value != null && Boolean.parseBoolean(value.trim())); - } - } - }; - - if (Protocol.isDispatchThread()) { - runnable.run(); - } - else { - Protocol.invokeAndWait(runnable); - } - - return isStatic.get() ? UIPlugin.getImage(ImageConsts.PEER) : UIPlugin.getImage(ImageConsts.PEER_DISCOVERED); + if (element instanceof IPeerNode || element instanceof IPeer) { + return UIPlugin.getImage(ImageConsts.PEER); } if (element instanceof PeerRedirectorGroupNode) { return UIPlugin.getImage(ImageConsts.DISCOVERY_ROOT); @@ -180,11 +157,11 @@ public class PeerLabelProviderDelegate extends LabelProvider implements ILabelDe public Image decorateImage(Image image, Object element) { Image decoratedImage = image; - if (image != null && element instanceof IPeerModel) { + if (image != null && element instanceof IPeerNode) { AbstractImageDescriptor descriptor = new PeerImageDescriptor( UIPlugin.getDefault().getImageRegistry(), image, - (IPeerModel)element); + (IPeerNode)element); decoratedImage = UIPlugin.getSharedImage(descriptor); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/TreeViewerListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/TreeViewerListener.java index 308633a42..e9de64f33 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/TreeViewerListener.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/TreeViewerListener.java @@ -16,8 +16,8 @@ import org.eclipse.jface.viewers.ITreeViewerListener; import org.eclipse.jface.viewers.TreeExpansionEvent; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.interfaces.IDisposable; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.navigator.nodes.PeerRedirectorGroupNode; import org.eclipse.ui.navigator.CommonViewer; @@ -52,13 +52,13 @@ public class TreeViewerListener implements ITreeViewerListener, IDisposable { @Override public void treeCollapsed(TreeExpansionEvent event) { if (event.getElement() instanceof PeerRedirectorGroupNode) { - final List<IPeerModel> candidates = Model.getModel().getChildren(((PeerRedirectorGroupNode)event.getElement()).peerId); + final List<IPeerNode> candidates = Model.getModel().getChildren(((PeerRedirectorGroupNode)event.getElement()).peerId); if (candidates != null && candidates.size() > 0) { Protocol.invokeLater(new Runnable() { @Override public void run() { // Mark all candidates to be excluded from the scan process - for (final IPeerModel candidate: candidates) { + for (final IPeerNode candidate: candidates) { markExcluded(candidate); } } @@ -70,17 +70,17 @@ public class TreeViewerListener implements ITreeViewerListener, IDisposable { /** * Mark the given peer model node and it's child nodes to be excluded from the scanner. * - * @param peerModel The peer model node. Must not be <code>null</code>. + * @param peerNode The peer model node. Must not be <code>null</code>. */ - /* default */ void markExcluded(IPeerModel peerModel) { + /* default */ void markExcluded(IPeerNode peerNode) { Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - Assert.isNotNull(peerModel); + Assert.isNotNull(peerNode); - peerModel.setProperty(IPeerModelProperties.PROP_SCANNER_EXCLUDE, true); + peerNode.setProperty(IPeerNodeProperties.PROP_SCANNER_EXCLUDE, true); - List<IPeerModel> candidates = Model.getModel().getChildren(peerModel.getPeerId()); + List<IPeerNode> candidates = Model.getModel().getChildren(peerNode.getPeerId()); if (candidates != null && candidates.size() > 0) { - for (final IPeerModel candidate: candidates) { + for (final IPeerNode candidate: candidates) { markExcluded(candidate); } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/dnd/CommonDnD.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/dnd/CommonDnD.java index 9ba4385ee..4a697b99f 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/dnd/CommonDnD.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/dnd/CommonDnD.java @@ -35,9 +35,9 @@ import org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistableNodePropert import org.eclipse.tcf.te.runtime.persistence.interfaces.IURIPersistenceService; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.ui.views.Managers; import org.eclipse.tcf.te.ui.views.interfaces.ICategory; @@ -80,7 +80,7 @@ public class CommonDnD { * @return true if it is draggable. */ private static boolean isDraggableObject(Object object) { - return object instanceof IPeerModel; + return object instanceof IPeerNode; } /** @@ -120,9 +120,9 @@ public class CommonDnD { if (target instanceof ICategory) { ICategory category = (ICategory) target; - if (element instanceof IPeerModel && category.getId().equals(parentCategory.getId()) && ((IPeerModel)element).isStatic()) { + if (element instanceof IPeerNode && category.getId().equals(parentCategory.getId())) { List<String> usedNames = getUsedNames(); - Map<String,String> attrs = new HashMap<String,String>(((IPeerModel)element).getPeer().getAttributes()); + Map<String,String> attrs = new HashMap<String,String>(((IPeerNode)element).getPeer().getAttributes()); attrs.put(IPeer.ATTR_ID, UUID.randomUUID().toString()); attrs.remove(IPersistableNodeProperties.PROPERTY_URI); int i = 0; @@ -178,7 +178,7 @@ public class CommonDnD { final Object finalElement = elementToSelect; final IPeer finalNewPeer = (elementToSelect instanceof IPeer) ? (IPeer)elementToSelect : null; // Trigger a refresh of the model to read in the newly created static peer - final ILocatorModelRefreshService service = Model.getModel().getService(ILocatorModelRefreshService.class); + final IPeerModelRefreshService service = Model.getModel().getService(IPeerModelRefreshService.class); if (service != null) { Runnable runnable = new Runnable() { @Override @@ -186,14 +186,14 @@ public class CommonDnD { service.refresh(new Callback() { @Override protected void internalDone(Object caller, org.eclipse.core.runtime.IStatus status) { - IPeerModel peerModel = null; + IPeerNode peerNode = null; if (finalNewPeer != null) { - ILocatorModelLookupService service = Model.getModel().getService(ILocatorModelLookupService.class); + IPeerModelLookupService service = Model.getModel().getService(IPeerModelLookupService.class); if (service != null) { - peerModel = service.lkupPeerModelById(finalNewPeer.getID()); + peerNode = service.lkupPeerModelById(finalNewPeer.getID()); } } - refresh(cNav, finalCat, peerModel != null ? peerModel : finalElement); + refresh(cNav, finalCat, peerNode != null ? peerNode : finalElement); } }); @@ -305,7 +305,7 @@ public class CommonDnD { if (target instanceof ICategory) { ICategory category = (ICategory) target; - if (!link && element instanceof IPeerModel && category.getId().equals(parentCategory.getId()) && ((IPeerModel)element).isStatic()) { + if (!link && element instanceof IPeerNode && category.getId().equals(parentCategory.getId())) { overrideOperation = DND.DROP_COPY; copy = true; } @@ -380,16 +380,14 @@ public class CommonDnD { @Override public void run() { // Get all peer model objects - IPeerModel[] peers = Model.getModel().getPeers(); + IPeerNode[] peers = Model.getModel().getPeers(); // Loop them and find the ones which are of our handled types - for (IPeerModel peerModel : peers) { - if (peerModel.isStatic()) { - String name = peerModel.getPeer().getName(); + for (IPeerNode peerNode : peers) { + String name = peerNode.getPeer().getName(); Assert.isNotNull(name); if (!"".equals(name) && !usedNames.contains(name)) { //$NON-NLS-1$ usedNames.add(name.trim().toUpperCase()); } - } } } }; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/events/EventListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/events/EventListener.java index 33cc59e4e..15a813289 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/events/EventListener.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/events/EventListener.java @@ -14,7 +14,7 @@ import java.util.EventObject; import org.eclipse.tcf.te.runtime.events.ChangeEvent; import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode; import org.eclipse.tcf.te.tcf.core.model.interfaces.IModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.ui.views.events.AbstractEventListener; /** @@ -34,7 +34,7 @@ public class EventListener extends AbstractEventListener { // Property changes for the model refreshes the parent peer // node. The runtime model is not visible by itself. if (source instanceof IModel) { - IPeerModel node = (IPeerModel)((IModel)source).getAdapter(IPeerModel.class); + IPeerNode node = (IPeerNode)((IModel)source).getAdapter(IPeerNode.class); refresh(node, false); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/filter/GenericFilter.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/filter/GenericFilter.java index c33a9afcd..07517dfff 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/filter/GenericFilter.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/filter/GenericFilter.java @@ -16,8 +16,8 @@ import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.tcf.core.interfaces.IPeerType; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.tcf.ui.navigator.nodes.PeerRedirectorGroupNode; import org.eclipse.tcf.te.ui.views.interfaces.ICategory; import org.eclipse.tcf.te.ui.views.interfaces.IUIConstants; @@ -34,13 +34,13 @@ public class GenericFilter extends ViewerFilter { public boolean select(Viewer viewer, Object parentElement, final Object element) { boolean visible = true; - if (element instanceof IPeerModel) { + if (element instanceof IPeerNode) { final AtomicReference<String> type = new AtomicReference<String>(); Runnable runnable = new Runnable() { @Override public void run() { - type.set(((IPeerModel)element).getPeer().getAttributes().get(IPeerModelProperties.PROP_TYPE)); + type.set(((IPeerNode)element).getPeer().getAttributes().get(IPeerNodeProperties.PROP_TYPE)); } }; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/images/PeerImageDescriptor.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/images/PeerImageDescriptor.java index 9264647d0..33cdbb3b1 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/images/PeerImageDescriptor.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/images/PeerImageDescriptor.java @@ -15,7 +15,7 @@ import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.core.interfaces.IConnectable; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.ui.internal.ImageConsts; import org.eclipse.tcf.te.ui.jface.images.AbstractImageDescriptor; @@ -35,7 +35,7 @@ public class PeerImageDescriptor extends AbstractImageDescriptor { /** * Constructor. */ - public PeerImageDescriptor(final ImageRegistry registry, final Image baseImage, final IPeerModel node) { + public PeerImageDescriptor(final ImageRegistry registry, final Image baseImage, final IPeerNode node) { super(registry); this.baseImage = baseImage; @@ -62,11 +62,11 @@ public class PeerImageDescriptor extends AbstractImageDescriptor { * * @param node The peer model. Must not be <code>null</code>. */ - protected void initialize(IPeerModel node) { + protected void initialize(IPeerNode node) { Assert.isNotNull(node); Assert.isTrue(Protocol.isDispatchThread()); - connectState = node instanceof IConnectable ? ((IConnectable)node).getConnectState() : IConnectable.STATE_UNKNOWN; + connectState = node.getConnectState(); } /** diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/sections/AbstractContextSelectorSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/sections/AbstractContextSelectorSection.java index dab9ab671..95712e6a2 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/sections/AbstractContextSelectorSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/sections/AbstractContextSelectorSection.java @@ -27,8 +27,8 @@ import org.eclipse.tcf.te.runtime.persistence.PersistenceManager; import org.eclipse.tcf.te.runtime.persistence.interfaces.IPersistenceDelegate; import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; import org.eclipse.tcf.te.tcf.locator.interfaces.IModelListener; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.widgets.FormToolkit; @@ -46,18 +46,18 @@ public abstract class AbstractContextSelectorSection extends org.eclipse.tcf.te. final IModelListener modelListener = new IModelListener() { @Override - public void locatorModelDisposed(ILocatorModel model) { + public void locatorModelDisposed(IPeerModel model) { refreshSelectorControl(); } @Override - public void locatorModelChanged(ILocatorModel model, IPeerModel peerModel, boolean added) { + public void locatorModelChanged(IPeerModel model, IPeerNode peerNode, boolean added) { refreshSelectorControl(); } }; final IEventListener eventListener = new IEventListener() { @Override public void eventFired(EventObject event) { - if (event.getSource() instanceof IPeer || event.getSource() instanceof IPeerModel) { + if (event.getSource() instanceof IPeer || event.getSource() instanceof IPeerNode) { refreshSelectorControl(); } } @@ -159,14 +159,14 @@ public abstract class AbstractContextSelectorSection extends org.eclipse.tcf.te. try { if (encoded != null && encoded.trim().length() > 0) { IPersistenceDelegate delegate = PersistenceManager.getInstance().getDelegate(IPeer.class, String.class); - Object[] input = delegate.readList(IPeerModel.class, encoded); + Object[] input = delegate.readList(IPeerNode.class, encoded); List<IModelNode> peers = new ArrayList<IModelNode>(); for (Object object : input) { if (object instanceof IModelNode) { peers.add((IModelNode)object); } } - return peers.toArray(new IPeerModel[peers.size()]); + return peers.toArray(new IPeerNode[peers.size()]); } } catch (Exception e) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/sections/SimulatorTypeSelectionSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/sections/SimulatorTypeSelectionSection.java index 44e43bc68..fdfdc6a79 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/sections/SimulatorTypeSelectionSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/sections/SimulatorTypeSelectionSection.java @@ -33,11 +33,11 @@ import org.eclipse.tcf.te.core.interfaces.IConnectable; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; import org.eclipse.tcf.te.tcf.ui.controls.SimulatorTypeSelectionControl; -import org.eclipse.tcf.te.tcf.ui.dialogs.AgentSelectionDialog; +import org.eclipse.tcf.te.tcf.ui.dialogs.PeerSelectionDialog; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.controls.BaseEditBrowseTextControl; import org.eclipse.tcf.te.ui.forms.parts.AbstractSection; @@ -59,7 +59,7 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID /* default */ SimulatorTypeSelectionControl simulator; // Reference to the original data object - /* default */ IPeerModel od; + /* default */ IPeerNode od; // Reference to a copy of the original data /* default */ final IPropertiesContainer odc = new PropertiesContainer(); // Reference to the properties container representing the working copy for the section @@ -68,7 +68,7 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID protected static final int SELECTION_REAL = 0; protected static final int SELECTION_SIM = 1; - protected IPeerModel selectedTarget = null; + protected IPeer selectedPeer = null; /** * Constructor. @@ -153,13 +153,13 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID if (target.isLabelControlSelected()) { onSelectionChanged(SELECTION_REAL); if (!isUpdating()) { - onTargetChanged(false, true, selectedTarget, selectedTarget); + onPeerChanged(false, true, selectedPeer, selectedPeer); } } } @Override protected void onButtonControlSelected() { - AgentSelectionDialog dialog = new AgentSelectionDialog(null) { + PeerSelectionDialog dialog = new PeerSelectionDialog(null) { @Override protected boolean supportsMultiSelection() { return false; @@ -169,8 +169,8 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID viewer.addFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, final Object element) { - if (element instanceof IPeerModel && !(element instanceof IConnectable)) { - final IPeer peer = ((IPeerModel)element).getPeer(); + if (element instanceof IPeer) { + final IPeer peer = (IPeer)element; final AtomicBoolean isValueAdd = new AtomicBoolean(); final AtomicBoolean isCLI = new AtomicBoolean(); Protocol.invokeAndWait(new Runnable() { @@ -198,11 +198,10 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID if (dialog.open() == Window.OK) { // Get the selected proxy from the dialog ISelection selection = dialog.getSelection(); - if (selection instanceof IStructuredSelection && !selection.isEmpty() && ((IStructuredSelection)selection).getFirstElement() instanceof IPeerModel) { - IPeerModel oldPeerModel = selectedTarget; - selectedTarget = (IPeerModel)((IStructuredSelection)selection).getFirstElement(); - setEditFieldControlText(selectedTarget.getName()); - onTargetChanged(isLabelControlSelected(), isLabelControlSelected(), oldPeerModel, selectedTarget); + if (selection instanceof IStructuredSelection && !selection.isEmpty() && ((IStructuredSelection)selection).getFirstElement() instanceof IPeer) { + IPeer oldPeer = selectedPeer; + selectedPeer = (IPeer)((IStructuredSelection)selection).getFirstElement(); + onPeerChanged(isLabelControlSelected(), isLabelControlSelected(), oldPeer, selectedPeer); } } @@ -279,14 +278,14 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID } /** - * Called on target enabled and selected peer model changed. + * Called on target enabled and selected peer changed. * * @param oldEnabled The old target enabled action. * @param newEnabled The new target enabled action. - * @param oldPeerModel The new selected peer model. - * @param newPeerModel The old selected peer model. + * @param oldPeer The new selected peer. + * @param newPeer The old selected peer. */ - protected void onTargetChanged(boolean oldEnabled, boolean newEnabled, IPeerModel oldPeerModel, IPeerModel newPeerModel) { + protected void onPeerChanged(boolean oldEnabled, boolean newEnabled, IPeer oldPeer, IPeer newPeer) { } /** @@ -302,8 +301,8 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID if (getManagedForm().getContainer() instanceof AbstractEditorPage && !((AbstractEditorPage)getManagedForm().getContainer()).isDirty()) { Object node = ((AbstractEditorPage)getManagedForm().getContainer()).getEditorInputNode(); - if (node instanceof IPeerModel) { - setupData((IPeerModel)node); + if (node instanceof IPeerNode) { + setupData((IPeerNode)node); } } } else { @@ -323,16 +322,16 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID // Initialize the simulator simulator selection control if (simulator != null) { simulator.initialize(od); - simulator.setSelectedSimulatorId(data.getStringProperty(IPeerModelProperties.PROP_SIM_TYPE)); - simulator.setSimulatorConfig(data.getStringProperty(IPeerModelProperties.PROP_SIM_PROPERTIES)); - simulator.setLabelControlSelection(data.getBooleanProperty(IPeerModelProperties.PROP_SIM_ENABLED)); + simulator.setSelectedSimulatorId(data.getStringProperty(IPeerNodeProperties.PROP_SIM_TYPE)); + simulator.setSimulatorConfig(data.getStringProperty(IPeerNodeProperties.PROP_SIM_PROPERTIES)); + simulator.setLabelControlSelection(data.getBooleanProperty(IPeerNodeProperties.PROP_SIM_ENABLED)); } if (target != null) { - target.setLabelControlSelection(!data.getBooleanProperty(IPeerModelProperties.PROP_SIM_ENABLED)); + target.setLabelControlSelection(!data.getBooleanProperty(IPeerNodeProperties.PROP_SIM_ENABLED)); } - onSelectionChanged(data.getBooleanProperty(IPeerModelProperties.PROP_SIM_ENABLED) ? SELECTION_SIM : SELECTION_REAL); + onSelectionChanged(data.getBooleanProperty(IPeerNodeProperties.PROP_SIM_ENABLED) ? SELECTION_SIM : SELECTION_REAL); // Mark the control update as completed now setIsUpdating(false); @@ -349,7 +348,7 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID * * @param node The peer model node or <code>null</code>. */ - public void setupData(final IPeerModel node) { + public void setupData(final IPeerNode node) { // If the section is dirty, nothing is changed if (isDirty()) { return; @@ -388,9 +387,9 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID public void run() { // The section is handling the simulator related properties // Ignore other properties. - odc.setProperty(IPeerModelProperties.PROP_SIM_ENABLED, node.getPeer().getAttributes().get(IPeerModelProperties.PROP_SIM_ENABLED)); - odc.setProperty(IPeerModelProperties.PROP_SIM_PROPERTIES, node.getPeer().getAttributes().get(IPeerModelProperties.PROP_SIM_PROPERTIES)); - odc.setProperty(IPeerModelProperties.PROP_SIM_TYPE, node.getPeer().getAttributes().get(IPeerModelProperties.PROP_SIM_TYPE)); + odc.setProperty(IPeerNodeProperties.PROP_SIM_ENABLED, node.getPeer().getAttributes().get(IPeerNodeProperties.PROP_SIM_ENABLED)); + odc.setProperty(IPeerNodeProperties.PROP_SIM_PROPERTIES, node.getPeer().getAttributes().get(IPeerNodeProperties.PROP_SIM_PROPERTIES)); + odc.setProperty(IPeerNodeProperties.PROP_SIM_TYPE, node.getPeer().getAttributes().get(IPeerNodeProperties.PROP_SIM_TYPE)); // Initially, the working copy is a duplicate of the original data copy wc.setProperties(odc.getProperties()); } @@ -422,14 +421,14 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID // Extract the widget data into the working copy if (target != null) { - data.setProperty(IPeerModelProperties.PROP_SIM_ENABLED, false); - data.setProperty(IPeerModelProperties.PROP_TARGET, target.getEditFieldControlText()); + data.setProperty(IPeerNodeProperties.PROP_SIM_ENABLED, false); + data.setProperty(IPeerNodeProperties.PROP_TARGET, target.getEditFieldControlText()); } if (simulator != null) { - data.setProperty(IPeerModelProperties.PROP_SIM_ENABLED, simulator.isLabelControlSelected()); - data.setProperty(IPeerModelProperties.PROP_SIM_TYPE, simulator.getSelectedSimulatorId()); - data.setProperty(IPeerModelProperties.PROP_SIM_PROPERTIES, simulator.getSimulatorConfig()); + data.setProperty(IPeerNodeProperties.PROP_SIM_ENABLED, simulator.isLabelControlSelected()); + data.setProperty(IPeerNodeProperties.PROP_SIM_TYPE, simulator.getSelectedSimulatorId()); + data.setProperty(IPeerNodeProperties.PROP_SIM_PROPERTIES, simulator.getSimulatorConfig()); } } @@ -441,7 +440,7 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID * * @param node The peer node or <code>null</code>. */ - public void extractData(final IPeerModel node) { + public void extractData(final IPeerNode node) { // If no data is available, we are done if (node == null) { return; @@ -460,9 +459,9 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID Protocol.invokeAndWait(new Runnable() { @Override public void run() { - boolean isSimEnabled = wc.getBooleanProperty(IPeerModelProperties.PROP_SIM_ENABLED); - String configs = wc.getStringProperty(IPeerModelProperties.PROP_SIM_PROPERTIES); - String type = wc.getStringProperty(IPeerModelProperties.PROP_SIM_TYPE); + boolean isSimEnabled = wc.getBooleanProperty(IPeerNodeProperties.PROP_SIM_ENABLED); + String configs = wc.getStringProperty(IPeerNodeProperties.PROP_SIM_PROPERTIES); + String type = wc.getStringProperty(IPeerNodeProperties.PROP_SIM_TYPE); // To update the peer attributes, the peer needs to be recreated IPeer oldPeer = node.getPeer(); @@ -470,26 +469,26 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID Map<String, String> attributes = new HashMap<String, String>(oldPeer.getAttributes()); // Update the data if (isSimEnabled) { - attributes.put(IPeerModelProperties.PROP_SIM_ENABLED, Boolean.toString(isSimEnabled)); + attributes.put(IPeerNodeProperties.PROP_SIM_ENABLED, Boolean.toString(isSimEnabled)); } else { - attributes.remove(IPeerModelProperties.PROP_SIM_ENABLED); + attributes.remove(IPeerNodeProperties.PROP_SIM_ENABLED); } if (configs != null) { - attributes.put(IPeerModelProperties.PROP_SIM_PROPERTIES, configs); + attributes.put(IPeerNodeProperties.PROP_SIM_PROPERTIES, configs); } else { - attributes.remove(IPeerModelProperties.PROP_SIM_PROPERTIES); + attributes.remove(IPeerNodeProperties.PROP_SIM_PROPERTIES); } if (type != null) { - attributes.put(IPeerModelProperties.PROP_SIM_TYPE, type); + attributes.put(IPeerNodeProperties.PROP_SIM_TYPE, type); } else { - attributes.remove(IPeerModelProperties.PROP_SIM_TYPE); + attributes.remove(IPeerNodeProperties.PROP_SIM_TYPE); } // And merge it to the peer model node if (oldPeer instanceof TransientPeer && !(oldPeer instanceof PeerRedirector || oldPeer instanceof Peer)) { // Create a peer object IPeer newPeer = new Peer(attributes); // Update the peer instance - node.setProperty(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties.PROP_INSTANCE, newPeer); + node.setProperty(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties.PROP_INSTANCE, newPeer); } else { if (oldPeer instanceof PeerRedirector) { ((PeerRedirector)oldPeer).updateAttributes(attributes); @@ -539,7 +538,7 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID } // Extract the data into the peer model node - extractData((IPeerModel)getManagedForm().getInput()); + extractData((IPeerNode)getManagedForm().getInput()); } /** @@ -557,12 +556,12 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID // Compare the data if (simulator != null) { - boolean oldEnabled = odc.getBooleanProperty(IPeerModelProperties.PROP_SIM_ENABLED); + boolean oldEnabled = odc.getBooleanProperty(IPeerNodeProperties.PROP_SIM_ENABLED); isDirty |= (oldEnabled != simulator.isLabelControlSelected()); if (simulator.isLabelControlSelected()) { String newType = simulator.getSelectedSimulatorId(); - String oldType = odc.getStringProperty(IPeerModelProperties.PROP_SIM_TYPE); + String oldType = odc.getStringProperty(IPeerNodeProperties.PROP_SIM_TYPE); if (newType == null || "".equals(newType)) { //$NON-NLS-1$ isDirty |= oldType != null && !"".equals(oldType); //$NON-NLS-1$ } else { @@ -570,7 +569,7 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID } String newConfig = simulator.getSimulatorConfig(); - String oldConfig = odc.getStringProperty(IPeerModelProperties.PROP_SIM_PROPERTIES); + String oldConfig = odc.getStringProperty(IPeerNodeProperties.PROP_SIM_PROPERTIES); if (newConfig == null || "".equals(newConfig)) { //$NON-NLS-1$ isDirty |= oldConfig != null && !"".equals(oldConfig); //$NON-NLS-1$ } @@ -604,7 +603,7 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID * Updates the control enablement. */ protected void updateEnablement() { - boolean enabled = od instanceof IConnectable && ((IConnectable)od).getConnectState() == IConnectable.STATE_DISCONNECTED; + boolean enabled = od == null || od.getConnectState() == IConnectable.STATE_DISCONNECTED; if (target != null) { SWTControlUtil.setEnabled(target.getEditFieldControl(), target.isLabelControlSelected() && enabled); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/tabbed/BaseTitledSection.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/tabbed/BaseTitledSection.java index ca3da3f88..bf0ba822d 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/tabbed/BaseTitledSection.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/tabbed/BaseTitledSection.java @@ -28,8 +28,8 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Text; import org.eclipse.tcf.te.core.interfaces.IPropertyChangeProvider; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProvider; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProvider; import org.eclipse.tcf.te.ui.swt.SWTControlUtil; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.forms.widgets.ExpandableComposite; @@ -51,7 +51,7 @@ public abstract class BaseTitledSection extends AbstractPropertySection implemen protected IPropertyChangeProvider viewerInput; // The input node. - protected IPeerModelProvider provider; + protected IPeerNodeProvider provider; /* * (non-Javadoc) @@ -66,13 +66,13 @@ public abstract class BaseTitledSection extends AbstractPropertySection implemen Assert.isTrue(selection instanceof IStructuredSelection); Object input = ((IStructuredSelection) selection).getFirstElement(); - IPeerModelProvider provider = input instanceof IPeerModelProvider ? (IPeerModelProvider) input : null; - if (provider == null) provider = input instanceof IAdaptable ? (IPeerModelProvider)((IAdaptable)input).getAdapter(IPeerModelProvider.class) : null; - if (provider == null) provider = (IPeerModelProvider)Platform.getAdapterManager().getAdapter(input, IPeerModelProvider.class); + IPeerNodeProvider provider = input instanceof IPeerNodeProvider ? (IPeerNodeProvider) input : null; + if (provider == null) provider = input instanceof IAdaptable ? (IPeerNodeProvider)((IAdaptable)input).getAdapter(IPeerNodeProvider.class) : null; + if (provider == null) provider = (IPeerNodeProvider)Platform.getAdapterManager().getAdapter(input, IPeerNodeProvider.class); if (provider != null) { this.provider = provider; - IPeerModel peerNode = getPeerModel(provider); + IPeerNode peerNode = getPeerModel(provider); this.viewerInput = (IPropertyChangeProvider) peerNode.getAdapter(IPropertyChangeProvider.class); if (this.viewerInput != null) { this.viewerInput.addPropertyChangeListener(this); @@ -90,7 +90,7 @@ public abstract class BaseTitledSection extends AbstractPropertySection implemen * @param provider * @return */ - protected IPeerModel getPeerModel(IPeerModelProvider provider) { + protected IPeerNode getPeerModel(IPeerNodeProvider provider) { Assert.isNotNull(provider); return provider.getPeerModel(); } @@ -100,7 +100,7 @@ public abstract class BaseTitledSection extends AbstractPropertySection implemen * * @param input The input node. */ - protected void updateInput(IPeerModelProvider input) { + protected void updateInput(IPeerNodeProvider input) { } /* diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/AbstractConfigWizard.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/AbstractConfigWizard.java index 4d4fd155f..87fc856c4 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/AbstractConfigWizard.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/AbstractConfigWizard.java @@ -22,8 +22,8 @@ import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepperOperationService; import org.eclipse.tcf.te.runtime.stepper.job.StepperJob; import org.eclipse.tcf.te.runtime.utils.StatusHelper; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties; import org.eclipse.tcf.te.tcf.locator.interfaces.services.IStepperServiceOperations; import org.eclipse.tcf.te.tcf.ui.activator.UIPlugin; import org.eclipse.tcf.te.tcf.ui.wizards.pages.AbstractConfigWizardPage; @@ -61,11 +61,11 @@ public abstract class AbstractConfigWizard extends NewTargetWizard { protected abstract AbstractConfigWizardPage getConfigWizardPage(); /* (non-Javadoc) - * @see org.eclipse.tcf.te.tcf.ui.wizards.NewTargetWizard#postPerformFinish(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel) + * @see org.eclipse.tcf.te.tcf.ui.wizards.NewTargetWizard#postPerformFinish(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode) */ @Override - protected void postPerformFinish(final IPeerModel peerModel) { - Assert.isNotNull(peerModel); + protected void postPerformFinish(final IPeerNode peerNode) { + Assert.isNotNull(peerNode); // Determine if or if not to auto-connect the created connection. boolean autoConnect = true; @@ -84,25 +84,25 @@ public abstract class AbstractConfigWizard extends NewTargetWizard { Protocol.invokeAndWait(new Runnable() { @Override public void run() { - connect.set(Boolean.parseBoolean(peerModel.getPeer().getAttributes().get(IPeerModelProperties.PROP_AUTO_CONNECT))); + connect.set(Boolean.parseBoolean(peerNode.getPeer().getAttributes().get(IPeerNodeProperties.PROP_AUTO_CONNECT))); } }); if (connect.get()) { - IService[] services = ServiceManager.getInstance().getServices(peerModel, IStepperOperationService.class, false); + IService[] services = ServiceManager.getInstance().getServices(peerNode, IStepperOperationService.class, false); IStepperOperationService stepperOperationService = null; for (IService service : services) { - if (service instanceof IStepperOperationService && ((IStepperOperationService)service).isHandledOperation(peerModel, IStepperServiceOperations.CONNECT)) { + if (service instanceof IStepperOperationService && ((IStepperOperationService)service).isHandledOperation(peerNode, IStepperServiceOperations.CONNECT)) { stepperOperationService = (IStepperOperationService)service; break; } } if (stepperOperationService != null) { - String stepGroupId = stepperOperationService.getStepGroupId(peerModel, IStepperServiceOperations.CONNECT); - IStepContext stepContext = stepperOperationService.getStepContext(peerModel, IStepperServiceOperations.CONNECT); - String name = stepperOperationService.getStepGroupName(peerModel, IStepperServiceOperations.CONNECT); - IPropertiesContainer data = stepperOperationService.getStepData(peerModel, IStepperServiceOperations.CONNECT); - boolean enabled = stepperOperationService.isEnabled(peerModel, IStepperServiceOperations.CONNECT); + String stepGroupId = stepperOperationService.getStepGroupId(peerNode, IStepperServiceOperations.CONNECT); + IStepContext stepContext = stepperOperationService.getStepContext(peerNode, IStepperServiceOperations.CONNECT); + String name = stepperOperationService.getStepGroupName(peerNode, IStepperServiceOperations.CONNECT); + IPropertiesContainer data = stepperOperationService.getStepData(peerNode, IStepperServiceOperations.CONNECT); + boolean enabled = stepperOperationService.isEnabled(peerNode, IStepperServiceOperations.CONNECT); if (enabled && stepGroupId != null && stepContext != null) { try { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/NewTargetWizard.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/NewTargetWizard.java index 376701571..c9d4250ff 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/NewTargetWizard.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/NewTargetWizard.java @@ -33,9 +33,9 @@ import org.eclipse.tcf.te.runtime.persistence.interfaces.IURIPersistenceService; import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.tcf.core.peers.Peer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.tcf.ui.wizards.pages.NewTargetWizardPage; @@ -128,13 +128,13 @@ public class NewTargetWizard extends AbstractWizard implements INewWizard { Protocol.invokeLater(new Runnable() { @Override public void run() { - ILocatorModelRefreshService service = Model.getModel().getService(ILocatorModelRefreshService.class); + IPeerModelRefreshService service = Model.getModel().getService(IPeerModelRefreshService.class); // Refresh the model now (must be executed within the TCF dispatch thread) if (service != null) service.refresh(new Callback() { @Override protected void internalDone(Object caller, IStatus status) { // Get the peer model node from the model and select it in the tree - final IPeerModel peerNode = Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelById(attrs.get(IPeer.ATTR_ID)); + final IPeerNode peerNode = Model.getModel().getService(IPeerModelLookupService.class).lkupPeerModelById(attrs.get(IPeer.ATTR_ID)); if (peerNode != null) { // Refresh the viewer ViewsUtil.refresh(IUIConstants.ID_EXPLORER); @@ -183,9 +183,9 @@ public class NewTargetWizard extends AbstractWizard implements INewWizard { * <p> * <b>Note:</b> The method is called from within the UI thread. * - * @param peerModel The peer model node. Must not be <code>null</code>. + * @param peerNode The peer model node. Must not be <code>null</code>. */ - protected void postPerformFinish(IPeerModel peerModel) { + protected void postPerformFinish(IPeerNode peerNode) { // Do nothing } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/AbstractConfigWizardPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/AbstractConfigWizardPage.java index 4a5bf06cb..bc3096301 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/AbstractConfigWizardPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/AbstractConfigWizardPage.java @@ -27,7 +27,7 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.controls.PeerNameControl; import org.eclipse.tcf.te.tcf.ui.nls.Messages; @@ -310,16 +310,14 @@ public abstract class AbstractConfigWizardPage extends AbstractFormsWizardPage i @Override public void run() { // Get all peer model objects - IPeerModel[] peers = Model.getModel().getPeers(); + IPeerNode[] peers = Model.getModel().getPeers(); // Loop them and find the ones which are of our handled types - for (IPeerModel peerModel : peers) { - if (peerModel.isStatic()) { - String name = peerModel.getPeer().getName(); + for (IPeerNode peerNode : peers) { + String name = peerNode.getPeer().getName(); Assert.isNotNull(name); if (!"".equals(name) && !usedNames.contains(name)) { //$NON-NLS-1$ usedNames.add(name.trim().toUpperCase()); } - } } } }; @@ -434,11 +432,11 @@ public abstract class AbstractConfigWizardPage extends AbstractFormsWizardPage i } if (isAutoStartDebugger()) { - peerAttributes.setProperty(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties.PROP_AUTO_START_DEBUGGER, true); + peerAttributes.setProperty(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties.PROP_AUTO_START_DEBUGGER, true); } if (isAutoConnect()) { - peerAttributes.setProperty(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModelProperties.PROP_AUTO_CONNECT, true); + peerAttributes.setProperty(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNodeProperties.PROP_AUTO_CONNECT, true); } if (selectorSection != null) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/NewTargetWizardPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/NewTargetWizardPage.java index 67bf46944..42583508c 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/NewTargetWizardPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/NewTargetWizardPage.java @@ -28,7 +28,7 @@ import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; import org.eclipse.tcf.te.tcf.core.interfaces.ITransportTypes; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.controls.CustomTransportPanel; import org.eclipse.tcf.te.tcf.ui.controls.PeerAttributesTablePart; @@ -454,16 +454,14 @@ public class NewTargetWizardPage extends AbstractValidatingWizardPage implements @Override public void run() { // Get all peer model objects - IPeerModel[] peers = Model.getModel().getPeers(); + IPeerNode[] peers = Model.getModel().getPeers(); // Loop them and find the ones which are of our handled types - for (IPeerModel peerModel : peers) { - if (peerModel.isStatic()) { - String name = peerModel.getPeer().getName(); + for (IPeerNode peerNode : peers) { + String name = peerNode.getPeer().getName(); Assert.isNotNull(name); if (!"".equals(name) && !usedNames.contains(name)) { //$NON-NLS-1$ usedNames.add(name.trim().toUpperCase()); } - } } } }; diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/PeerExportWizardPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/PeerExportWizardPage.java index 35acdc10e..998465d72 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/PeerExportWizardPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/PeerExportWizardPage.java @@ -51,8 +51,8 @@ import org.eclipse.swt.widgets.Text; import org.eclipse.tcf.te.runtime.persistence.interfaces.IURIPersistenceService; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.tcf.core.interfaces.IExportPersistenceService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.views.navigator.DelegatingLabelProvider; @@ -100,13 +100,13 @@ public class PeerExportWizardPage extends WizardPage { createPeersGroup(composite); createDestinationGroup(composite); - List<IPeerModel> elements = new ArrayList<IPeerModel>(); + List<IPeerNode> elements = new ArrayList<IPeerNode>(); Iterator<Object> it = fSelection.iterator(); while (it.hasNext()) { Object element = it.next(); - IPeerModel peerModel = (IPeerModel)Platform.getAdapterManager().getAdapter(element, IPeerModel.class); - if (peerModel != null) { - elements.add((IPeerModel)element); + IPeerNode peerNode = (IPeerNode)Platform.getAdapterManager().getAdapter(element, IPeerNode.class); + if (peerNode != null) { + elements.add((IPeerNode)element); } } fViewer.setCheckedElements(elements.toArray()); @@ -141,14 +141,10 @@ public class PeerExportWizardPage extends WizardPage { } @Override public Object[] getElements(Object inputElement) { - List<IPeerModel> elements = new ArrayList<IPeerModel>(); - for (IPeerModel peerModel : ((ILocatorModel)inputElement).getPeers()) { - if (peerModel.isStatic()) { - elements.add(peerModel); - } - + if (inputElement instanceof IPeerModel) { + return ((IPeerModel)inputElement).getPeers(); } - return elements.toArray(); + return new Object[0]; } @Override public Object[] getChildren(TreePath parentPath) { @@ -287,7 +283,7 @@ public class PeerExportWizardPage extends WizardPage { Object[] elements = fViewer.getCheckedElements(); boolean selected = false; for (Object element : elements) { - if(element instanceof IPeerModel) { + if(element instanceof IPeerNode) { selected = true; break; } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/PeerImportWizardPage.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/PeerImportWizardPage.java index 8fc219182..946c2d673 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/PeerImportWizardPage.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/wizards/pages/PeerImportWizardPage.java @@ -56,10 +56,10 @@ import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.persistence.interfaces.IURIPersistenceService; import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.tcf.core.interfaces.IImportPersistenceService; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelRefreshService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelRefreshService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.views.navigator.DelegatingLabelProvider; @@ -336,7 +336,7 @@ public class PeerImportWizardPage extends WizardPage { UIJob importjob = new UIJob(getContainer().getShell().getDisplay(), Messages.PeerImportWizard_title) { @Override public IStatus runInUIThread(IProgressMonitor monitor) { - final ILocatorModel model = Model.getModel(); + final IPeerModel model = Model.getModel(); final IProgressMonitor finalMonitor; if (monitor == null) { finalMonitor = new NullProgressMonitor(); @@ -349,25 +349,19 @@ public class PeerImportWizardPage extends WizardPage { int toggleResult = -1; for (final Object config : configs) { if (config instanceof IPeer) { - final AtomicReference<IPeerModel> peerModel = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> peerNode = new AtomicReference<IPeerNode>(); Protocol.invokeAndWait(new Runnable() { @Override public void run() { - peerModel.set(model.getService(ILocatorModelLookupService.class).lkupPeerModelById(((IPeer)config).getID())); - if (peerModel.get() == null) { - for (IPeerModel peer : model.getPeers()) { - if (peer.isStatic()) { + peerNode.set(model.getService(IPeerModelLookupService.class).lkupPeerModelById(((IPeer)config).getID())); + if (peerNode.get() == null) { + for (IPeerNode peer : model.getPeers()) { String name = peer.getPeer().getName(); if (name.equalsIgnoreCase(((IPeer)config).getName())) { - peerModel.set(peer); + peerNode.set(peer); break; } - } } - - } - if (peerModel.get() != null && !peerModel.get().isStatic()) { - peerModel.set(null); } } }); @@ -376,11 +370,11 @@ public class PeerImportWizardPage extends WizardPage { if (service == null) { service = ServiceManager.getInstance().getService(IURIPersistenceService.class); } - if (peerModel.get() != null) { + if (peerNode.get() != null) { if (!toggleState || toggleResult < 0) { MessageDialogWithToggle dialog = MessageDialogWithToggle.openYesNoQuestion( getShell(), null, - NLS.bind(Messages.PeerImportWizardPage_overwriteDialog_message, peerModel.get().getName()), + NLS.bind(Messages.PeerImportWizardPage_overwriteDialog_message, peerNode.get().getName()), Messages.PeerImportWizardPage_overwriteDialogToggle_message, toggleState, null, null); toggleState = dialog.getToggleState(); toggleResult = dialog.getReturnCode(); @@ -389,7 +383,7 @@ public class PeerImportWizardPage extends WizardPage { continue; } try { - service.delete(peerModel.get().getPeer(), null); + service.delete(peerNode.get().getPeer(), null); } catch (IOException e) { } @@ -413,7 +407,7 @@ public class PeerImportWizardPage extends WizardPage { Protocol.invokeLater(new Runnable() { @Override public void run() { - model.getService(ILocatorModelRefreshService.class).refresh(null); + model.getService(IPeerModelRefreshService.class).refresh(null); } }); finalMonitor.done(); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/TcfTestCase.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/TcfTestCase.java index ba8b90af6..e526eb525 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/TcfTestCase.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/TcfTestCase.java @@ -22,9 +22,9 @@ import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.model.factory.Factory; import org.eclipse.tcf.te.runtime.utils.Host; import org.eclipse.tcf.te.runtime.utils.net.IPAddressUtil; -import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelLookupService; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; +import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; import org.eclipse.tcf.te.tcf.locator.model.Model; import org.eclipse.tcf.te.tests.CoreTestCase; @@ -39,7 +39,7 @@ public class TcfTestCase extends CoreTestCase { // The peer instance protected IPeer peer; // The peer model instance - protected IPeerModel peerModel; + protected IPeerNode peerNode; /* (non-Javadoc) * @see org.eclipse.tcf.te.tests.CoreTestCase#setUp() @@ -57,7 +57,7 @@ public class TcfTestCase extends CoreTestCase { protected void tearDown() throws Exception { if (launcher != null) launcher.dispose(); peer = null; - peerModel = null; + peerNode = null; super.tearDown(); } @@ -158,7 +158,7 @@ public class TcfTestCase extends CoreTestCase { final Map<String, String> attrs = new HashMap<String, String>((Map<String, String>)object); // Lookup the corresponding peer object - final ILocatorModel model = Model.getModel(); + final IPeerModel model = Model.getModel(); assertNotNull("Failed to access locator model instance.", model); //$NON-NLS-1$ // The expected peer id is "<transport>:<canonical IP>:<port>" @@ -170,17 +170,17 @@ public class TcfTestCase extends CoreTestCase { assertNotNull("Unexpected return value 'null'.", ip); //$NON-NLS-1$ final String id = transport + ":" + ip + ":" + port; //$NON-NLS-1$ //$NON-NLS-2$ - final AtomicReference<IPeerModel> node = new AtomicReference<IPeerModel>(); + final AtomicReference<IPeerNode> node = new AtomicReference<IPeerNode>(); Runnable runnable = new Runnable() { @Override public void run() { - node.set(model.getService(ILocatorModelLookupService.class).lkupPeerModelById(id)); + node.set(model.getService(IPeerModelLookupService.class).lkupPeerModelById(id)); // If the peer model is not found by id, try the agent id as fallback. if (node.get() == null) { String agentID = attrs.get(IPeer.ATTR_AGENT_ID); assertNotNull("Unexpected return value 'null'.", agentID); //$NON-NLS-1$ - IPeerModel[] candidates = model.getService(ILocatorModelLookupService.class).lkupPeerModelByAgentId(agentID); + IPeerNode[] candidates = model.getService(IPeerModelLookupService.class).lkupPeerModelByAgentId(agentID); if (candidates != null && candidates.length > 0) node.set(candidates[0]); } } @@ -193,10 +193,10 @@ public class TcfTestCase extends CoreTestCase { attrs.put(IPeer.ATTR_ID, id); attrs.put(IPeer.ATTR_IP_HOST, ip); peer = new TransientPeer(attrs); - peerModel = Factory.getInstance().newInstance(IPeerModel.class, new Object[] { model, peer }); + peerNode = Factory.getInstance().newInstance(IPeerNode.class, new Object[] { model, peer }); } else { - peerModel = node.get(); - peer = peerModel.getPeer(); + peerNode = node.get(); + peer = peerNode.getPeer(); } assertNotNull("Failed to determine the peer to use for the tests.", peer); //$NON-NLS-1$ } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/FSPeerTestCase.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/FSPeerTestCase.java index a8e44dd3f..e0b7b7748 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/FSPeerTestCase.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/FSPeerTestCase.java @@ -1,179 +1,179 @@ -/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tests.tcf.filesystem;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.tcf.protocol.IChannel;
-import org.eclipse.tcf.protocol.IToken;
-import org.eclipse.tcf.services.IFileSystem;
-import org.eclipse.tcf.services.IFileSystem.DoneStat;
-import org.eclipse.tcf.services.IFileSystem.FileAttrs;
-import org.eclipse.tcf.services.IFileSystem.FileSystemException;
-import org.eclipse.tcf.te.tcf.core.Tcf;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.NullOpExecutor;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCreateFile;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCreateFolder;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpParsePath;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpRefresh;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.Operation;
-import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode;
-import org.eclipse.tcf.te.tests.tcf.TcfTestCase;
-
-public class FSPeerTestCase extends TcfTestCase {
-
- protected FSTreeNode testRoot;
- protected FSTreeNode testFolder;
- protected FSTreeNode testFile;
- protected FSTreeNode test1Folder;
- protected FSTreeNode test1File;
- protected FSTreeNode test11Folder;
- protected FSTreeNode test11File;
- protected FSTreeNode test12Folder;
- protected FSTreeNode test12File;
- protected FSTreeNode test2Folder;
- protected FSTreeNode test2File;
- protected FSTreeNode test21Folder;
- protected FSTreeNode test21File;
- protected FSTreeNode test22Folder;
- protected FSTreeNode test22File;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- assertNotNull(peerModel);
- assertNotNull(peer);
-
- OpParsePath parser = new OpParsePath(peerModel, getTestRoot());
- new NullOpExecutor().execute(parser);
- testRoot = parser.getResult();
- if(testRoot == null) {
- File file = new File(getTestRoot());
- if (!file.exists()) {
- file.mkdirs();
- }
- parser = new OpParsePath(peerModel, getTestRoot());
- new NullOpExecutor().execute(parser);
- testRoot = parser.getResult();
- }
-
- String path = getTestRoot() + getPathSep() + getTestPath();
- testFolder = prepareFolder(path, getTestPath(), testRoot);
- testFile = prepareFile(path + getPathSep() + "test.txt", "test.txt", testFolder); //$NON-NLS-1$ //$NON-NLS-2$
- test1Folder = prepareFolder(path + getPathSep() + "test1", "test1", testFolder); //$NON-NLS-1$ //$NON-NLS-2$
- String path1 = path + getPathSep() + "test1"; //$NON-NLS-1$
- test1File = prepareFile(path1 + getPathSep() + "test1.txt", "test1.txt", test1Folder); //$NON-NLS-1$ //$NON-NLS-2$
- test11Folder = prepareFolder(path1 + getPathSep() + "test11", "test11", test1Folder); //$NON-NLS-1$ //$NON-NLS-2$
- String path11 = path1 + getPathSep() + "test11"; //$NON-NLS-1$
- test11File = prepareFile(path11 + getPathSep() + "test11.txt", "test11.txt", test11Folder); //$NON-NLS-1$ //$NON-NLS-2$
- test12Folder = prepareFolder(path1 + getPathSep() + "test12", "test12", test1Folder); //$NON-NLS-1$ //$NON-NLS-2$
- String path12 = path1 + getPathSep() + "test12"; //$NON-NLS-1$
- test12File = prepareFile(path12 + getPathSep() + "test12.txt", "test12.txt", test12Folder); //$NON-NLS-1$ //$NON-NLS-2$
- test2Folder = prepareFolder(path + getPathSep() + "test2", "test2", testFolder); //$NON-NLS-1$ //$NON-NLS-2$
- String path2 = path + getPathSep() + "test2"; //$NON-NLS-1$
- test2File = prepareFolder(path2 + getPathSep() + "test2.txt", "test2.txt", test2Folder); //$NON-NLS-1$ //$NON-NLS-2$
- test21Folder = prepareFolder(path2 + getPathSep() + "test21", "test21", test2Folder); //$NON-NLS-1$ //$NON-NLS-2$
- String path21 = path2 + getPathSep() + "test21"; //$NON-NLS-1$
- test21File = prepareFile(path21 + getPathSep() + "test21.txt", "test21.txt", test21Folder); //$NON-NLS-1$ //$NON-NLS-2$
- test22Folder = prepareFolder(path2 + getPathSep() + "test22", "test22", test2Folder); //$NON-NLS-1$ //$NON-NLS-2$
- String path22 = path2 + getPathSep() + "test22"; //$NON-NLS-1$
- test22File = prepareFile(path22 + getPathSep() + "test22.txt", "test22.txt", test22Folder); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- protected FSTreeNode prepareFolder(String folderPath, String folderName, FSTreeNode parentFolder) throws Exception {
- printDebugMessage("Prepare folder " + folderPath); //$NON-NLS-1$
- FSTreeNode testFolder = getFSNode(folderPath);
- if (testFolder == null) {
- OpCreateFolder fs = new OpCreateFolder(parentFolder, folderName);
- fs.run(new NullProgressMonitor());
- testFolder = getFSNode(folderPath);
- }
- return testFolder;
- }
-
- protected boolean pathExists(String path) {
- IChannel channel = null;
- try {
- channel = Operation.openChannel(peer);
- if (channel != null) {
- IFileSystem service = Operation.getBlockingFileSystem(channel);
- if (service != null) {
- final boolean[] exists = new boolean[1];
- service.lstat(path, new DoneStat() {
- @Override
- public void doneStat(IToken token, FileSystemException error, FileAttrs attrs) {
- exists[0] = error == null;
- }
- });
- return exists[0];
- }
- }
- }
- catch (Exception e) {
- }
- finally {
- if (channel != null) Tcf.getChannelManager().closeChannel(channel);
- }
- return false;
- }
-
- protected FSTreeNode getFSNode(String path) {
- OpParsePath parser = new OpParsePath(peerModel, path);
- new NullOpExecutor().execute(parser);
- FSTreeNode node = parser.getResult();
- if (node == null) {
- OpRefresh refresh = new OpRefresh(testRoot);
- try {
- refresh.run(new NullProgressMonitor());
- } catch (Exception e) {}
-
- parser = new OpParsePath(peerModel, path);
- new NullOpExecutor().execute(parser);
- node = parser.getResult();
- }
- return node;
- }
-
- protected FSTreeNode prepareFile(String filePath, String fileName, FSTreeNode parentFolder) throws Exception {
- printDebugMessage("Prepare file " + filePath); //$NON-NLS-1$
- FSTreeNode testFile = getFSNode(filePath);
- if (testFile == null) {
- OpCreateFile fs = new OpCreateFile(parentFolder, fileName);
- fs.run(new NullProgressMonitor());
- testFile = getFSNode(filePath);
- }
- return testFile;
- }
-
- protected String getTestPath() {
- return "test"; //$NON-NLS-1$
- }
-
- private String rootDir;
-
- protected String getTestRoot() {
- if (rootDir == null) {
- String wdir = System.getProperty("user.home"); //$NON-NLS-1$
- if (wdir == null) wdir = System.getProperty("user.dir"); //$NON-NLS-1$
- rootDir = wdir + getPathSep() + "tmp_test_root"; //$NON-NLS-1$
- File file = new File(rootDir);
- if (!file.exists()) {
- file.mkdirs();
- }
- }
- return rootDir;
- }
-
- protected String getPathSep() {
- return File.separator;
- }
-}
+/******************************************************************************* + * Copyright (c) 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tests.tcf.filesystem; + +import java.io.File; + +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.tcf.protocol.IChannel; +import org.eclipse.tcf.protocol.IToken; +import org.eclipse.tcf.services.IFileSystem; +import org.eclipse.tcf.services.IFileSystem.DoneStat; +import org.eclipse.tcf.services.IFileSystem.FileAttrs; +import org.eclipse.tcf.services.IFileSystem.FileSystemException; +import org.eclipse.tcf.te.tcf.core.Tcf; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.NullOpExecutor; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCreateFile; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpCreateFolder; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpParsePath; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.OpRefresh; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.operations.Operation; +import org.eclipse.tcf.te.tcf.filesystem.core.model.FSTreeNode; +import org.eclipse.tcf.te.tests.tcf.TcfTestCase; + +public class FSPeerTestCase extends TcfTestCase { + + protected FSTreeNode testRoot; + protected FSTreeNode testFolder; + protected FSTreeNode testFile; + protected FSTreeNode test1Folder; + protected FSTreeNode test1File; + protected FSTreeNode test11Folder; + protected FSTreeNode test11File; + protected FSTreeNode test12Folder; + protected FSTreeNode test12File; + protected FSTreeNode test2Folder; + protected FSTreeNode test2File; + protected FSTreeNode test21Folder; + protected FSTreeNode test21File; + protected FSTreeNode test22Folder; + protected FSTreeNode test22File; + + @Override + protected void setUp() throws Exception { + super.setUp(); + + assertNotNull(peerNode); + assertNotNull(peer); + + OpParsePath parser = new OpParsePath(peerNode, getTestRoot()); + new NullOpExecutor().execute(parser); + testRoot = parser.getResult(); + if(testRoot == null) { + File file = new File(getTestRoot()); + if (!file.exists()) { + file.mkdirs(); + } + parser = new OpParsePath(peerNode, getTestRoot()); + new NullOpExecutor().execute(parser); + testRoot = parser.getResult(); + } + + String path = getTestRoot() + getPathSep() + getTestPath(); + testFolder = prepareFolder(path, getTestPath(), testRoot); + testFile = prepareFile(path + getPathSep() + "test.txt", "test.txt", testFolder); //$NON-NLS-1$ //$NON-NLS-2$ + test1Folder = prepareFolder(path + getPathSep() + "test1", "test1", testFolder); //$NON-NLS-1$ //$NON-NLS-2$ + String path1 = path + getPathSep() + "test1"; //$NON-NLS-1$ + test1File = prepareFile(path1 + getPathSep() + "test1.txt", "test1.txt", test1Folder); //$NON-NLS-1$ //$NON-NLS-2$ + test11Folder = prepareFolder(path1 + getPathSep() + "test11", "test11", test1Folder); //$NON-NLS-1$ //$NON-NLS-2$ + String path11 = path1 + getPathSep() + "test11"; //$NON-NLS-1$ + test11File = prepareFile(path11 + getPathSep() + "test11.txt", "test11.txt", test11Folder); //$NON-NLS-1$ //$NON-NLS-2$ + test12Folder = prepareFolder(path1 + getPathSep() + "test12", "test12", test1Folder); //$NON-NLS-1$ //$NON-NLS-2$ + String path12 = path1 + getPathSep() + "test12"; //$NON-NLS-1$ + test12File = prepareFile(path12 + getPathSep() + "test12.txt", "test12.txt", test12Folder); //$NON-NLS-1$ //$NON-NLS-2$ + test2Folder = prepareFolder(path + getPathSep() + "test2", "test2", testFolder); //$NON-NLS-1$ //$NON-NLS-2$ + String path2 = path + getPathSep() + "test2"; //$NON-NLS-1$ + test2File = prepareFolder(path2 + getPathSep() + "test2.txt", "test2.txt", test2Folder); //$NON-NLS-1$ //$NON-NLS-2$ + test21Folder = prepareFolder(path2 + getPathSep() + "test21", "test21", test2Folder); //$NON-NLS-1$ //$NON-NLS-2$ + String path21 = path2 + getPathSep() + "test21"; //$NON-NLS-1$ + test21File = prepareFile(path21 + getPathSep() + "test21.txt", "test21.txt", test21Folder); //$NON-NLS-1$ //$NON-NLS-2$ + test22Folder = prepareFolder(path2 + getPathSep() + "test22", "test22", test2Folder); //$NON-NLS-1$ //$NON-NLS-2$ + String path22 = path2 + getPathSep() + "test22"; //$NON-NLS-1$ + test22File = prepareFile(path22 + getPathSep() + "test22.txt", "test22.txt", test22Folder); //$NON-NLS-1$ //$NON-NLS-2$ + } + + protected FSTreeNode prepareFolder(String folderPath, String folderName, FSTreeNode parentFolder) throws Exception { + printDebugMessage("Prepare folder " + folderPath); //$NON-NLS-1$ + FSTreeNode testFolder = getFSNode(folderPath); + if (testFolder == null) { + OpCreateFolder fs = new OpCreateFolder(parentFolder, folderName); + fs.run(new NullProgressMonitor()); + testFolder = getFSNode(folderPath); + } + return testFolder; + } + + protected boolean pathExists(String path) { + IChannel channel = null; + try { + channel = Operation.openChannel(peer); + if (channel != null) { + IFileSystem service = Operation.getBlockingFileSystem(channel); + if (service != null) { + final boolean[] exists = new boolean[1]; + service.lstat(path, new DoneStat() { + @Override + public void doneStat(IToken token, FileSystemException error, FileAttrs attrs) { + exists[0] = error == null; + } + }); + return exists[0]; + } + } + } + catch (Exception e) { + } + finally { + if (channel != null) Tcf.getChannelManager().closeChannel(channel); + } + return false; + } + + protected FSTreeNode getFSNode(String path) { + OpParsePath parser = new OpParsePath(peerNode, path); + new NullOpExecutor().execute(parser); + FSTreeNode node = parser.getResult(); + if (node == null) { + OpRefresh refresh = new OpRefresh(testRoot); + try { + refresh.run(new NullProgressMonitor()); + } catch (Exception e) {} + + parser = new OpParsePath(peerNode, path); + new NullOpExecutor().execute(parser); + node = parser.getResult(); + } + return node; + } + + protected FSTreeNode prepareFile(String filePath, String fileName, FSTreeNode parentFolder) throws Exception { + printDebugMessage("Prepare file " + filePath); //$NON-NLS-1$ + FSTreeNode testFile = getFSNode(filePath); + if (testFile == null) { + OpCreateFile fs = new OpCreateFile(parentFolder, fileName); + fs.run(new NullProgressMonitor()); + testFile = getFSNode(filePath); + } + return testFile; + } + + protected String getTestPath() { + return "test"; //$NON-NLS-1$ + } + + private String rootDir; + + protected String getTestRoot() { + if (rootDir == null) { + String wdir = System.getProperty("user.home"); //$NON-NLS-1$ + if (wdir == null) wdir = System.getProperty("user.dir"); //$NON-NLS-1$ + rootDir = wdir + getPathSep() + "tmp_test_root"; //$NON-NLS-1$ + File file = new File(rootDir); + if (!file.exists()) { + file.mkdirs(); + } + } + return rootDir; + } + + protected String getPathSep() { + return File.separator; + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/AdaptersTests.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/AdaptersTests.java index a8405cae9..a8519e44b 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/AdaptersTests.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/AdaptersTests.java @@ -1,24 +1,24 @@ -/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tests.tcf.filesystem.adapters;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AdaptersTests {
- public static Test suite() {
- TestSuite suite = new TestSuite("File System: Adapters Tests"); //$NON-NLS-1$
- suite.addTestSuite(FSTreeNodeAdapterFactoryTest.class);
- suite.addTestSuite(NodeStateFilterTest.class);
- suite.addTestSuite(PeerModelViewerInputTest.class);
- suite.addTestSuite(ViewerInputAdapterFactoryTest.class);
- return suite;
- }
-}
+/******************************************************************************* + * Copyright (c) 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tests.tcf.filesystem.adapters; + +import junit.framework.Test; +import junit.framework.TestSuite; + +public class AdaptersTests { + public static Test suite() { + TestSuite suite = new TestSuite("File System: Adapters Tests"); //$NON-NLS-1$ + suite.addTestSuite(FSTreeNodeAdapterFactoryTest.class); + suite.addTestSuite(NodeStateFilterTest.class); + suite.addTestSuite(PeerNodeViewerInputTest.class); + suite.addTestSuite(ViewerInputAdapterFactoryTest.class); + return suite; + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/PeerModelViewerInputTest.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/PeerNodeViewerInputTest.java index 5f92880cf..b1fee22d8 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/PeerModelViewerInputTest.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/PeerNodeViewerInputTest.java @@ -1,23 +1,23 @@ -/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tests.tcf.filesystem.adapters;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.tcf.te.core.interfaces.IViewerInput;
-import org.eclipse.tcf.te.tests.tcf.filesystem.FSPeerTestCase;
-
-public class PeerModelViewerInputTest extends FSPeerTestCase {
- public void testViewerInputId() {
- IViewerInput input = (IViewerInput) Platform.getAdapterManager().getAdapter(peerModel, IViewerInput.class);
- assertNotNull(input);
- String id = input.getInputId();
- assertEquals(peerModel.getPeerId(), id);
- }
-}
+/******************************************************************************* + * Copyright (c) 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tests.tcf.filesystem.adapters; + +import org.eclipse.core.runtime.Platform; +import org.eclipse.tcf.te.core.interfaces.IViewerInput; +import org.eclipse.tcf.te.tests.tcf.filesystem.FSPeerTestCase; + +public class PeerNodeViewerInputTest extends FSPeerTestCase { + public void testViewerInputId() { + IViewerInput input = (IViewerInput) Platform.getAdapterManager().getAdapter(peerNode, IViewerInput.class); + assertNotNull(input); + String id = input.getInputId(); + assertEquals(peerNode.getPeerId(), id); + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/ViewerInputAdapterFactoryTest.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/ViewerInputAdapterFactoryTest.java index b73a13f56..0a1de01ce 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/ViewerInputAdapterFactoryTest.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/adapters/ViewerInputAdapterFactoryTest.java @@ -1,21 +1,21 @@ -/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tests.tcf.filesystem.adapters;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.tcf.te.core.interfaces.IViewerInput;
-import org.eclipse.tcf.te.tests.tcf.filesystem.FSPeerTestCase;
-
-public class ViewerInputAdapterFactoryTest extends FSPeerTestCase {
- public void testViewerInputAdapter() {
- IViewerInput input = (IViewerInput) Platform.getAdapterManager().getAdapter(peerModel, IViewerInput.class);
- assertNotNull(input);
- }
-}
+/******************************************************************************* + * Copyright (c) 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tests.tcf.filesystem.adapters; + +import org.eclipse.core.runtime.Platform; +import org.eclipse.tcf.te.core.interfaces.IViewerInput; +import org.eclipse.tcf.te.tests.tcf.filesystem.FSPeerTestCase; + +public class ViewerInputAdapterFactoryTest extends FSPeerTestCase { + public void testViewerInputAdapter() { + IViewerInput input = (IViewerInput) Platform.getAdapterManager().getAdapter(peerNode, IViewerInput.class); + assertNotNull(input); + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/testers/TargetPropertyTesterTest.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/testers/TargetPropertyTesterTest.java index 898ada6fd..474663d60 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/testers/TargetPropertyTesterTest.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/filesystem/testers/TargetPropertyTesterTest.java @@ -1,27 +1,27 @@ -/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tests.tcf.filesystem.testers;
-
-import org.eclipse.tcf.te.runtime.utils.Host;
-import org.eclipse.tcf.te.tcf.filesystem.core.internal.testers.TargetPropertyTester;
-import org.eclipse.tcf.te.tests.tcf.filesystem.FSPeerTestCase;
-
-public class TargetPropertyTesterTest extends FSPeerTestCase {
- public void testIsWindows() {
- TargetPropertyTester tester = new TargetPropertyTester();
- boolean value = tester.test(peerModel, "isWindows", null, null); //$NON-NLS-1$
- if(Host.isWindowsHost()) {
- assertTrue(value);
- }
- else {
- assertFalse(value);
- }
- }
-}
+/******************************************************************************* + * Copyright (c) 2012 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tests.tcf.filesystem.testers; + +import org.eclipse.tcf.te.runtime.utils.Host; +import org.eclipse.tcf.te.tcf.filesystem.core.internal.testers.TargetPropertyTester; +import org.eclipse.tcf.te.tests.tcf.filesystem.FSPeerTestCase; + +public class TargetPropertyTesterTest extends FSPeerTestCase { + public void testIsWindows() { + TargetPropertyTester tester = new TargetPropertyTester(); + boolean value = tester.test(peerNode, "isWindows", null, null); //$NON-NLS-1$ + if(Host.isWindowsHost()) { + assertTrue(value); + } + else { + assertFalse(value); + } + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/launch/TcfLaunchTests.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/launch/TcfLaunchTests.java index c09e1706f..dd94a7c11 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/launch/TcfLaunchTests.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/launch/TcfLaunchTests.java @@ -56,7 +56,7 @@ public class TcfLaunchTests extends TcfTestCase { public void testRemoteAppLaunch() { final ILaunchSpecification spec = new LaunchSpecification(ILaunchTypes.REMOTE_APPLICATION, ILaunchManager.RUN_MODE); - LaunchContextsPersistenceDelegate.setLaunchContexts(spec, new IModelNode[]{peerModel}); + LaunchContextsPersistenceDelegate.setLaunchContexts(spec, new IModelNode[]{peerNode}); IPath helloWorldLocation = getHelloWorldLocation(); assertTrue("Missing hello world example for current OS and Arch:" + Platform.getOS() + "/" + Platform.getOSArch(), //$NON-NLS-1$ //$NON-NLS-2$ diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/processes/model/ProcessModelTestCase.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/processes/model/ProcessModelTestCase.java index 2c870620e..aa0b4d1ec 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/processes/model/ProcessModelTestCase.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/processes/model/ProcessModelTestCase.java @@ -55,10 +55,10 @@ public class ProcessModelTestCase extends TcfTestCase { public void testProcessModel() { assertNotNull("Test peer missing.", peer); //$NON-NLS-1$ - assertNotNull("Test peer model missing.", peerModel); //$NON-NLS-1$ + assertNotNull("Test peer model missing.", peerNode); //$NON-NLS-1$ // Get the process model for the test peer model - final IRuntimeModel model = ModelManager.getRuntimeModel(peerModel); + final IRuntimeModel model = ModelManager.getRuntimeModel(peerNode); assertNotNull("Failed to get runtime model for peer model.", model); //$NON-NLS-1$ // Create a callback handler to receive all callbacks necessary to @@ -119,7 +119,7 @@ public class ProcessModelTestCase extends TcfTestCase { assertNotNull("Missing return status.", status); //$NON-NLS-1$ assertFalse("Process runtime model refresh failed. Possible cause: " + status.getMessage(), status.getSeverity() == IStatus.ERROR); //$NON-NLS-1$ - ModelManager.disposeRuntimeModel(peerModel); + ModelManager.disposeRuntimeModel(peerNode); } //***** END SECTION: Single test methods ***** diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/tests/TcfStepperTests.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/tests/TcfStepperTests.java index 8ae35bcc6..319bfaa2e 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/tests/TcfStepperTests.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/tests/TcfStepperTests.java @@ -1,80 +1,80 @@ -/*******************************************************************************
- * Copyright (c) 2013 Wind River Systems, Inc. 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
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tests.tcf.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.tcf.protocol.IChannel;
-import org.eclipse.tcf.te.runtime.concurrent.util.ExecutorsUtil;
-import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer;
-import org.eclipse.tcf.te.runtime.properties.PropertiesContainer;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepper;
-import org.eclipse.tcf.te.runtime.stepper.stepper.Stepper;
-import org.eclipse.tcf.te.tcf.core.interfaces.steps.ITcfStepAttributes;
-import org.eclipse.tcf.te.tests.tcf.TcfTestCase;
-
-/**
- * TCF Stepper tests.
- */
-public class TcfStepperTests extends TcfTestCase {
-
- /**
- * Provides a test suite to the caller which combines all single
- * test bundled within this category.
- *
- * @return Test suite containing all test for this test category.
- */
- public static Test getTestSuite() {
- TestSuite testSuite = new TestSuite("TCF Stepper tests"); //$NON-NLS-1$
-
- // add ourself to the test suite
- testSuite.addTestSuite(TcfStepperTests.class);
-
- return testSuite;
- }
-
- public void testChannelSteps() {
- assertNotNull("Precondition Failure: peer model is not available.", peerModel); //$NON-NLS-1$
-
- final IStepper stepper = new Stepper("testExecuteStepGroup"); //$NON-NLS-1$
-
- IPropertiesContainer properties = new PropertiesContainer();
- IStepContext context = (IStepContext)Platform.getAdapterManager().getAdapter(peerModel, IStepContext.class);
- assertNotNull("Failed to get step context adapter for peer model.", context); //$NON-NLS-1$
-
- // Initialize the stepper
- stepper.initialize(context, "org.eclipse.tcf.te.tests.channelStepTests", properties, null); //$NON-NLS-1$
-
- ExecutorsUtil.execute(new Runnable() {
- @Override
- public void run() {
- // Execute
- try {
- stepper.execute();
- }
- catch (Exception e) {
- assertNull("Unexpected exception when executing step group", e); //$NON-NLS-1$
- }
- }
- });
-
- // Wait for the stepper to be finished
- assertFalse("Timeout executing step group", ExecutorsUtil.waitAndExecute(0, new IStepper.ExecutionFinishedConditionTester(stepper))); //$NON-NLS-1$
-
- IChannel channel = (IChannel)properties.getProperty(ITcfStepAttributes.ATTR_CHANNEL);
- assertNotNull("Failed to create channel.", channel); //$NON-NLS-1$
- assertTrue("Failed to open channel.", properties.getBooleanProperty("ValidateChannelStep.result")); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue("Failed to close channel.", channel.getState() == IChannel.STATE_CLOSED); //$NON-NLS-1$
- }
-
-}
+/******************************************************************************* + * Copyright (c) 2013 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tests.tcf.tests; + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.eclipse.core.runtime.Platform; +import org.eclipse.tcf.protocol.IChannel; +import org.eclipse.tcf.te.runtime.concurrent.util.ExecutorsUtil; +import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; +import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepContext; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepper; +import org.eclipse.tcf.te.runtime.stepper.stepper.Stepper; +import org.eclipse.tcf.te.tcf.core.interfaces.steps.ITcfStepAttributes; +import org.eclipse.tcf.te.tests.tcf.TcfTestCase; + +/** + * TCF Stepper tests. + */ +public class TcfStepperTests extends TcfTestCase { + + /** + * Provides a test suite to the caller which combines all single + * test bundled within this category. + * + * @return Test suite containing all test for this test category. + */ + public static Test getTestSuite() { + TestSuite testSuite = new TestSuite("TCF Stepper tests"); //$NON-NLS-1$ + + // add ourself to the test suite + testSuite.addTestSuite(TcfStepperTests.class); + + return testSuite; + } + + public void testChannelSteps() { + assertNotNull("Precondition Failure: peer model is not available.", peerNode); //$NON-NLS-1$ + + final IStepper stepper = new Stepper("testExecuteStepGroup"); //$NON-NLS-1$ + + IPropertiesContainer properties = new PropertiesContainer(); + IStepContext context = (IStepContext)Platform.getAdapterManager().getAdapter(peerNode, IStepContext.class); + assertNotNull("Failed to get step context adapter for peer model.", context); //$NON-NLS-1$ + + // Initialize the stepper + stepper.initialize(context, "org.eclipse.tcf.te.tests.channelStepTests", properties, null); //$NON-NLS-1$ + + ExecutorsUtil.execute(new Runnable() { + @Override + public void run() { + // Execute + try { + stepper.execute(); + } + catch (Exception e) { + assertNull("Unexpected exception when executing step group", e); //$NON-NLS-1$ + } + } + }); + + // Wait for the stepper to be finished + assertFalse("Timeout executing step group", ExecutorsUtil.waitAndExecute(0, new IStepper.ExecutionFinishedConditionTester(stepper))); //$NON-NLS-1$ + + IChannel channel = (IChannel)properties.getProperty(ITcfStepAttributes.ATTR_CHANNEL); + assertNotNull("Failed to create channel.", channel); //$NON-NLS-1$ + assertTrue("Failed to open channel.", properties.getBooleanProperty("ValidateChannelStep.result")); //$NON-NLS-1$ //$NON-NLS-2$ + assertTrue("Failed to close channel.", channel.getState() == IChannel.STATE_CLOSED); //$NON-NLS-1$ + } + +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals/plugin.xml index 0a4bd5d7b..feb56f7c6 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals/plugin.xml @@ -132,7 +132,7 @@ <with variable="selection"> <count value="1"/> <iterate operator="and" ifEmpty="false"> - <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel"> + <adapt type="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"> <test property="org.eclipse.tcf.te.tcf.locator.hasRemoteService" value="Terminals"/> </adapt> </iterate> diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui/plugin.xml b/target_explorer/plugins/org.eclipse.tcf.te.ui/plugin.xml index 8f787aebd..2e9e14e51 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.ui/plugin.xml +++ b/target_explorer/plugins/org.eclipse.tcf.te.ui/plugin.xml @@ -150,15 +150,13 @@ <handler commandId="org.eclipse.tcf.te.ui.editor.command.connect"> <class class="org.eclipse.tcf.te.ui.handler.ConnectableCommandHandler"> <parameter name="action" value="connect"/> + <parameter name="handleDirty" value="true"/> </class> <activeWhen> <reference definitionId="te.expressions.editor.IConnectable"/> </activeWhen> <enabledWhen> <and> - <with variable="activeEditor"> - <test property="org.eclipse.tcf.te.ui.views.isDirty" value="false"/> - </with> <with variable="activeEditorInput"> <adapt type="org.eclipse.tcf.te.core.interfaces.IConnectable"> <test forcePluginActivation="true" diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/AbstractEditorCommandHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/AbstractEditorCommandHandler.java new file mode 100644 index 000000000..50b30870f --- /dev/null +++ b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/AbstractEditorCommandHandler.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * Copyright (c) 2013 Wind River Systems, Inc. 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 + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.ui.handler; + +import java.util.Map; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IExecutableExtension; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.osgi.util.NLS; +import org.eclipse.tcf.te.ui.jface.dialogs.OptionalMessageDialog; +import org.eclipse.tcf.te.ui.nls.Messages; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.handlers.HandlerUtil; +import org.eclipse.ui.part.EditorPart; + +/** + * Connectable command handler implementation. + */ +public abstract class AbstractEditorCommandHandler extends AbstractHandler implements IExecutableExtension { + + protected static final String PARAM_HANDLE_DIRTY = "handleDirty"; //$NON-NLS-1$ + + protected boolean handleDirty = false; + + /* (non-Javadoc) + * @see com.windriver.te.tcf.ui.handler.AbstractAgentCommandHandler#execute(org.eclipse.core.commands.ExecutionEvent) + */ + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + + if (handleDirty(event)) { + IWorkbenchPart part = HandlerUtil.getActivePart(event); + if (part instanceof EditorPart) { + if (((EditorPart)part).isDirty()) { + int result = OptionalMessageDialog.openYesNoCancelDialog( + HandlerUtil.getActiveShell(event), + Messages.AbstractEditorCommandHandler_saveDialog_title, + NLS.bind(Messages.AbstractEditorCommandHandler_saveDialog_message, ((EditorPart)part).getTitle()), + null, null); + switch (result) { + case IDialogConstants.YES_ID: + ((EditorPart)part).doSave(null); + break; + case IDialogConstants.CANCEL_ID: + return null; + } + } + } + } + + return internalExecute(event); + } + + protected abstract Object internalExecute(ExecutionEvent event) throws ExecutionException; + + protected boolean handleDirty(ExecutionEvent event) { + return handleDirty; + } + + /* (non-Javadoc) + * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object) + */ + @Override + public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { + if (data instanceof Map) { + Map<?,?> dataMap = (Map<?,?>)data; + if (dataMap.get(PARAM_HANDLE_DIRTY) instanceof String) { + String value = dataMap.get(PARAM_HANDLE_DIRTY).toString().trim(); + this.handleDirty = Boolean.parseBoolean(value); + } + } + } +} diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/AbstractStepperCommandHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/AbstractStepperCommandHandler.java index a243cbb65..afefc5ffd 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/AbstractStepperCommandHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/AbstractStepperCommandHandler.java @@ -14,13 +14,11 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExecutableExtension; import org.eclipse.core.runtime.Platform; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; @@ -43,7 +41,7 @@ import org.eclipse.ui.part.EditorPart; /** * Stepper command handler implementation. */ -public abstract class AbstractStepperCommandHandler extends AbstractHandler implements IExecutableExtension { +public abstract class AbstractStepperCommandHandler extends AbstractEditorCommandHandler { protected String operation = null; protected String adaptTo = null; @@ -54,10 +52,10 @@ public abstract class AbstractStepperCommandHandler extends AbstractHandler impl public static final String PART_ID_PROJECT_VIEW = "org.eclipse.ui.navigator.ProjectExplorer"; //$NON-NLS-1$ /* (non-Javadoc) - * @see com.windriver.te.tcf.ui.handler.AbstractAgentCommandHandler#execute(org.eclipse.core.commands.ExecutionEvent) + * @see org.eclipse.tcf.te.ui.handler.AbstractEditorCommandHandler#internalExecute(org.eclipse.core.commands.ExecutionEvent) */ @Override - public Object execute(ExecutionEvent event) throws ExecutionException { + protected Object internalExecute(ExecutionEvent event) throws ExecutionException { Assert.isNotNull(operation); IPropertiesContainer data = getData(event); @@ -166,6 +164,7 @@ public abstract class AbstractStepperCommandHandler extends AbstractHandler impl */ @Override public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { + super.setInitializationData(config, propertyName, data); if (data instanceof Map) { Map<?,?> dataMap = (Map<?,?>)data; if (dataMap.get("operation") instanceof String) { //$NON-NLS-1$ diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/ConnectableCommandHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/ConnectableCommandHandler.java index dca89b68d..bfda04ef6 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/ConnectableCommandHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/ConnectableCommandHandler.java @@ -12,13 +12,11 @@ package org.eclipse.tcf.te.ui.handler; import java.util.Iterator; import java.util.Map; -import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExecutableExtension; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.tcf.te.core.interfaces.IConnectable; @@ -28,17 +26,17 @@ import org.eclipse.ui.handlers.HandlerUtil; /** * Connectable command handler implementation. */ -public class ConnectableCommandHandler extends AbstractHandler implements IExecutableExtension { +public class ConnectableCommandHandler extends AbstractEditorCommandHandler { protected static final String PARAM_ACTION = "action"; //$NON-NLS-1$ protected int action = IConnectable.STATE_UNKNOWN; /* (non-Javadoc) - * @see com.windriver.te.tcf.ui.handler.AbstractAgentCommandHandler#execute(org.eclipse.core.commands.ExecutionEvent) + * @see org.eclipse.tcf.te.ui.handler.AbstractEditorCommandHandler#internalExecute(org.eclipse.core.commands.ExecutionEvent) */ @Override - public Object execute(ExecutionEvent event) throws ExecutionException { + public Object internalExecute(ExecutionEvent event) throws ExecutionException { Assert.isTrue(action >= 0); ISelection selection = HandlerUtil.getCurrentSelection(event); @@ -64,6 +62,7 @@ public class ConnectableCommandHandler extends AbstractHandler implements IExecu */ @Override public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { + super.setInitializationData(config, propertyName, data); if (data instanceof Map) { Map<?,?> dataMap = (Map<?,?>)data; if (dataMap.get(PARAM_ACTION) instanceof String) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/nls/Messages.java b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/nls/Messages.java index eab2a3372..225246559 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/nls/Messages.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/nls/Messages.java @@ -95,4 +95,7 @@ public class Messages extends NLS { public static String ViewerStateManager_MkdirFailed; public static String TriggerCommandEventListener_error_executionFailed; + + public static String AbstractEditorCommandHandler_saveDialog_title; + public static String AbstractEditorCommandHandler_saveDialog_message; } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/nls/Messages.properties b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/nls/Messages.properties index 7b1e12783..e4da7aa6a 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/nls/Messages.properties +++ b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/nls/Messages.properties @@ -85,3 +85,7 @@ ViewerStateManager_MkdirFailed=Making the directory for viewerstate.xml failed\! TriggerCommandEventListener_error_executionFailed=Failed to execute command {0}. +# ***** Handler ***** + +AbstractEditorCommandHandler_saveDialog_title=Save Resource +AbstractEditorCommandHandler_saveDialog_message=''{0}'' has been modified. Save changes? |