diff options
Diffstat (limited to 'target_explorer/plugins')
57 files changed, 528 insertions, 272 deletions
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 441a50824..636e1cb7f 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 @@ -28,7 +28,7 @@ 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.tcf.te.tcf.locator.interfaces.services.IPeerModelLookupService; -import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.locator.model.ModelManager; /** * The operation to parse a platform specific path to a target's node. @@ -73,7 +73,7 @@ public class OpParsePath extends Operation { @Override public void run() { - peerNode.set(Model.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(finPeerId)); + peerNode.set(ModelManager.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(finPeerId)); } }; 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 0696cb1e2..b3831f527 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 @@ -34,7 +34,7 @@ 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.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.locator.model.ModelManager; /** * The URL connection returned by TCF stream service used to handle "tcf" @@ -117,7 +117,7 @@ public class TcfURLConnection extends URLConnection { public void run() { IPeer p = Protocol.getLocator().getPeers().get(peerId); if (p == null) { - IPeerNode peerNode = Model.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId); + IPeerNode peerNode = ModelManager.getPeerModel().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/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 890ce3c3a..74767cca2 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 @@ -54,7 +54,7 @@ public final class FSModel implements ITreeNodeModel { private FSTreeNode root; private IPeerNode peerNode; /** - * Create a File System Model. + * Create a File System ModelManager. */ /* default */ FSModel(IPeerNode peerNode) { this.peerNode = peerNode; 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 f69de1316..f92416340 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 @@ -17,7 +17,7 @@ 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.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.locator.model.ModelManager; import org.eclipse.ui.IElementFactory; import org.eclipse.ui.IMemento; @@ -33,7 +33,7 @@ public class FSTreeNodeFactory implements IElementFactory { @Override public IAdaptable createElement(IMemento memento) { String peerId = memento.getString("peerId"); //$NON-NLS-1$ - IPeerNode peerNode = Model.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId); + IPeerNode peerNode = ModelManager.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId); if(peerNode != null) { String path = memento.getString("path"); //$NON-NLS-1$ if(path == null) { 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 2862f438e..45ab09ecb 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 @@ -39,7 +39,7 @@ 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.tcf.locator.interfaces.services.IPeerModelQueryService; -import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.navigator.ContentProvider; import org.eclipse.tcf.te.ui.activator.UIPlugin; import org.eclipse.tcf.te.ui.interfaces.IUIConstants; @@ -99,7 +99,7 @@ public class TargetSelectionPage extends AbstractValidatingWizardPage { */ private void initialize() { // Refresh the information of remote services. - IPeerModel model = Model.getPeerModel(); + IPeerModel model = ModelManager.getPeerModel(); Assert.isNotNull(model); IPeerNode[] peers = model.getPeerNodes(); if (peers != null) { @@ -218,7 +218,7 @@ public class TargetSelectionPage extends AbstractValidatingWizardPage { } }); - treeViewer.setInput(Model.getPeerModel()); + treeViewer.setInput(ModelManager.getPeerModel()); NewNodeWizard wizard = getWizard(); IPeerNode peer = wizard.getPeer(); if (wizard.getPeer() != null) { 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 eec66c889..983ad44f0 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 @@ -25,7 +25,7 @@ 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.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.locator.model.ModelManager; /** * Adapter factory implementation. @@ -112,7 +112,7 @@ public class AdapterFactory implements IAdapterFactory { } } else if (adaptableObject instanceof IPeer) { - final IPeerModelLookupService service = Model.getPeerModel().getService(IPeerModelLookupService.class); + final IPeerModelLookupService service = ModelManager.getPeerModel().getService(IPeerModelLookupService.class); final AtomicReference<IPeerNode> peerNode = new AtomicReference<IPeerNode>(); if (service != null) { 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 a990260e8..301a6b81b 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 @@ -14,7 +14,7 @@ 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.IPeerModel; -import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.locator.model.ModelManager; import org.osgi.framework.BundleContext; /** @@ -87,7 +87,7 @@ public class CoreBundleActivator extends Plugin { plugin = null; // Dispose the locator model - final IPeerModel model = Model.getPeerModel(true); + final IPeerModel model = ModelManager.getPeerModel(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/ILocatorModelListener.java index 18fea6a2d..161c58463 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/ILocatorModelListener.java @@ -9,27 +9,27 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.locator.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.protocol.IPeer; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; /** * Interface for clients to implement that wishes to listen to changes to the locator model. */ -public interface IModelListener { +public interface ILocatorModelListener { /** * Invoked if a peer is added or removed to/from the locator model. * * @param model The changed locator model. - * @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. + * @param peer The added/removed peer. + * @param added <code>True</code> if the peer got added, <code>false</code> if it got removed. */ - public void locatorModelChanged(IPeerModel model, IPeerNode peerNode, boolean added); + public void modelChanged(ILocatorModel model, IPeer peer, boolean added); /** * Invoked if the locator model is disposed. * * @param model The disposed locator model. */ - public void locatorModelDisposed(IPeerModel model); + public void modelDisposed(ILocatorModel model); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/IPeerModelListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/IPeerModelListener.java new file mode 100644 index 000000000..345a2c37e --- /dev/null +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/interfaces/IPeerModelListener.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * 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; + +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 peer model. + */ +public interface IPeerModelListener { + + /** + * Invoked if a peer node is added or removed to/from the peer model. + * + * @param model The changed locator model. + * @param peerNode The added/removed peer node. + * @param added <code>True</code> if the peer node got added, <code>false</code> if it got removed. + */ + public void modelChanged(IPeerModel model, IPeerNode peerNode, boolean added); + + /** + * Invoked if the peer model is disposed. + * + * @param model The disposed peer model. + */ + public void modelDisposed(IPeerModel model); +} 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 index dd636b057..58acd623d 100644 --- 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 @@ -14,6 +14,7 @@ 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.ILocatorModelListener; import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelService; @@ -34,6 +35,29 @@ import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelService; 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(ILocatorModelListener listener); + + /** + * Removes the specified listener from the list of model listener. + * + * @param listener The listener. Must not be <code>null</code>. + */ + public void removeListener(ILocatorModelListener listener); + + /** + * Returns the list of registered model listeners. + * + * @return The list of registered model listeners or an empty list. + */ + public ILocatorModelListener[] getListener(); + + /** * Dispose the locator model instance. */ public void dispose(); 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 145765c35..55a268f21 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 @@ -12,7 +12,7 @@ package org.eclipse.tcf.te.tcf.locator.interfaces.nodes; 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.IPeerModelListener; import org.eclipse.tcf.te.tcf.locator.interfaces.services.IPeerModelService; @@ -39,21 +39,21 @@ public interface IPeerModel extends IAdaptable { * * @param listener The listener. Must not be <code>null</code>. */ - public void addListener(IModelListener listener); + public void addListener(IPeerModelListener 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); + public void removeListener(IPeerModelListener listener); /** * Returns the list of registered model listeners. * * @return The list of registered model listeners or an empty list. */ - public IModelListener[] getListener(); + public IPeerModelListener[] getListener(); /** * Dispose the locator model instance. 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 17d0c1318..fd5cf3f27 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 @@ -24,7 +24,7 @@ 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.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.model.ModelManager; /** * Static peers adapter factory implementation. @@ -70,7 +70,7 @@ public class AdapterFactory implements IAdapterFactory { @Override public void run() { String id = peer.getID(); - IPeerModel model = Model.getPeerModel(); + IPeerModel model = ModelManager.getPeerModel(); Assert.isNotNull(model); IPeerNode candidate = model.getService(IPeerModelLookupService.class).lkupPeerModelById(id); if (candidate != null) node.set(candidate); 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 ecadefe17..2c13a87b9 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 @@ -9,27 +9,27 @@ *******************************************************************************/ 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.IPeerModelListener; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode; /** * Default model listener implementation. */ -public class ModelAdapter implements IModelListener { +public class ModelAdapter implements IPeerModelListener { /* (non-Javadoc) - * @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) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.IPeerModelListener#modelChanged(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 peerNode, boolean added) { + public void modelChanged(final IPeerModel model, final IPeerNode peerNode, final 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) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.IPeerModelListener#modelDisposed(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel) */ @Override - public void locatorModelDisposed(IPeerModel model) { + public void modelDisposed(IPeerModel model) { } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ProtocolStateChangeListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ProtocolStateChangeListener.java index cf90ec9d2..e479f784e 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ProtocolStateChangeListener.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/listener/ProtocolStateChangeListener.java @@ -10,7 +10,7 @@ package org.eclipse.tcf.te.tcf.locator.listener; import org.eclipse.tcf.te.tcf.core.listeners.interfaces.IProtocolStateChangeListener; -import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.locator.model.ModelManager; /** * Protocol state change listener implementation. @@ -23,7 +23,7 @@ public class ProtocolStateChangeListener implements IProtocolStateChangeListener @Override public void stateChanged(boolean state) { // If the TCF frame work got started, initialize the locator model as well - if (state) Model.getPeerModel(); + if (state) ModelManager.getPeerModel(); } } 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/ModelManager.java index b70b3a09a..1402ef5f4 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/ModelManager.java @@ -22,7 +22,7 @@ import org.eclipse.tcf.te.tcf.locator.nodes.PeerModel; /** * Helper class to instantiate and initialize the peer and locator model. */ -public final class Model { +public final class ModelManager { // Reference to the peer model /* default */ static volatile IPeerModel peerModel; @@ -127,6 +127,7 @@ public final class Model { locatorModel = new LocatorModel(); // Refresh the model right away locatorModel.getService(ILocatorModelRefreshService.class).refresh(null); + ((LocatorModel)locatorModel).checkLocatorListener(); } } 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 index 215ea5145..c8db50492 100644 --- 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 @@ -23,6 +23,7 @@ import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.services.ILocator; import org.eclipse.tcf.te.tcf.locator.activator.CoreBundleActivator; +import org.eclipse.tcf.te.tcf.locator.interfaces.ILocatorModelListener; 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.services.ILocatorModelLookupService; @@ -49,6 +50,9 @@ public class LocatorModel extends PlatformObject implements ILocatorModel { // The list of "proxied" peers per proxy peer id /* default */ final Map<String, List<IPeer>> peerChildren = new HashMap<String, List<IPeer>>(); + // The list of registered model listeners + private final List<ILocatorModelListener> modelListener = new ArrayList<ILocatorModelListener>(); + // Reference to the model locator listener private ILocator.LocatorListener locatorListener = null; @@ -67,6 +71,45 @@ public class LocatorModel extends PlatformObject implements ILocatorModel { } /* (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(ILocatorModelListener 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.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(ILocatorModelListener 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.tcf.locator.interfaces.nodes.IPeerModel#getListener() + */ + @Override + public ILocatorModelListener[] getListener() { + Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ + return modelListener.toArray(new ILocatorModelListener[modelListener.size()]); + } + + /* (non-Javadoc) * @see org.eclipse.tcf.te.tcf.locator.core.interfaces.nodes.ILocatorModel#dispose() */ @Override @@ -86,6 +129,18 @@ public class LocatorModel extends PlatformObject implements ILocatorModel { Protocol.getLocator().removeListener(locatorListener); locatorListener = null; } + final ILocatorModelListener[] listeners = getListener(); + if (listeners.length > 0) { + Protocol.invokeLater(new Runnable() { + @Override + public void run() { + for (ILocatorModelListener listener : listeners) { + listener.modelDisposed(LocatorModel.this); + } + } + }); + } + modelListener.clear(); peers.clear(); } @@ -103,19 +158,7 @@ public class LocatorModel extends PlatformObject implements ILocatorModel { */ @Override public IPeer[] getPeers() { - final AtomicReference<IPeer[]> result = new AtomicReference<IPeer[]>(); - - Runnable runnable = new Runnable() { - @Override - public void run() { - result.set(peers.values().toArray(new IPeer[peers.values().size()])); - } - }; - - if (Protocol.isDispatchThread()) runnable.run(); - else Protocol.invokeAndWait(runnable); - - return result.get(); + return peers.values().toArray(new IPeer[peers.size()]); } /* (non-Javadoc) 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 6731388a1..6c5943ae0 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 @@ -22,7 +22,7 @@ import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.utils.net.IPAddressUtil; 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.IPeerModelListener; 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.IPeerNode; @@ -50,7 +50,7 @@ public class PeerModel extends PlatformObject implements IPeerModel { /* default */ final Map<String, IPeerNode> peerNodes = new HashMap<String, IPeerNode>(); // The list of registered model listeners - private final List<IModelListener> modelListener = new ArrayList<IModelListener>(); + private final List<IPeerModelListener> modelListener = new ArrayList<IPeerModelListener>(); // Reference to the refresh service private final IPeerModelRefreshService refreshService = new PeerModelRefreshService(this); @@ -73,7 +73,7 @@ public class PeerModel extends PlatformObject implements IPeerModel { * @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) { + public void addListener(IPeerModelListener listener) { Assert.isNotNull(listener); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ @@ -88,7 +88,7 @@ public class PeerModel extends PlatformObject implements IPeerModel { * @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) { + public void removeListener(IPeerModelListener listener) { Assert.isNotNull(listener); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ @@ -103,9 +103,9 @@ public class PeerModel extends PlatformObject implements IPeerModel { * @see org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel#getListener() */ @Override - public IModelListener[] getListener() { + public IPeerModelListener[] getListener() { Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - return modelListener.toArray(new IModelListener[modelListener.size()]); + return modelListener.toArray(new IPeerModelListener[modelListener.size()]); } /* (non-Javadoc) @@ -124,13 +124,13 @@ public class PeerModel extends PlatformObject implements IPeerModel { disposed = true; - final IModelListener[] listeners = getListener(); + final IPeerModelListener[] listeners = getListener(); if (listeners.length > 0) { Protocol.invokeLater(new Runnable() { @Override public void run() { - for (IModelListener listener : listeners) { - listener.locatorModelDisposed(PeerModel.this); + for (IPeerModelListener listener : listeners) { + listener.modelDisposed(PeerModel.this); } } }); 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 1b94b1e6b..f88212d0b 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 @@ -23,7 +23,7 @@ import org.eclipse.tcf.te.tcf.core.peers.Peer; 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.model.ModelManager; import org.eclipse.tcf.te.tcf.locator.nodes.PeerNode; /** @@ -85,10 +85,10 @@ public class GsonPeerPersistenceDelegate extends GsonMapPersistenceDelegate { String id = peer.getID(); if (id != null) { // Lookup the id within the model - IPeerNode peerNode = Model.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(id); + IPeerNode peerNode = ModelManager.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(id); if (peerNode == null) { // Not found in the model -> create a ghost object - peerNode = new PeerNode(Model.getPeerModel(), peer); + peerNode = new PeerNode(ModelManager.getPeerModel(), peer); peerNode.setProperty(IModelNode.PROPERTY_IS_GHOST, true); } 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/LocatorModelUpdateService.java index 124660f4a..0b5f6d744 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/LocatorModelUpdateService.java @@ -14,6 +14,7 @@ import java.util.Map; 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.ILocatorModelListener; import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; import org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService; @@ -43,6 +44,18 @@ public class LocatorModelUpdateService extends AbstractLocatorModelService imple Map<String, IPeer> peers = (Map<String, IPeer>)getLocatorModel().getAdapter(Map.class); Assert.isNotNull(peers); peers.put(peer.getID(), peer); + + final ILocatorModelListener[] listeners = getLocatorModel().getListener(); + if (listeners.length > 0) { + Protocol.invokeLater(new Runnable() { + @Override + public void run() { + for (ILocatorModelListener listener : listeners) { + listener.modelChanged(getLocatorModel(), peer, true); + } + } + }); + } } /* (non-Javadoc) @@ -56,13 +69,25 @@ public class LocatorModelUpdateService extends AbstractLocatorModelService imple Map<String, IPeer> peers = (Map<String, IPeer>)getLocatorModel().getAdapter(Map.class); Assert.isNotNull(peers); peers.remove(peer.getID()); + + final ILocatorModelListener[] listeners = getLocatorModel().getListener(); + if (listeners.length > 0) { + Protocol.invokeLater(new Runnable() { + @Override + public void run() { + for (ILocatorModelListener listener : listeners) { + listener.modelChanged(getLocatorModel(), peer, false); + } + } + }); + } } /* (non-Javadoc) * @see org.eclipse.tcf.te.tcf.locator.interfaces.services.ILocatorModelUpdateService#update(org.eclipse.tcf.protocol.IPeer, org.eclipse.tcf.protocol.IPeer) */ @Override - public void update(IPeer oldPeer, IPeer newPeer) { + public void update(final IPeer oldPeer, final IPeer newPeer) { Assert.isNotNull(oldPeer); Assert.isNotNull(newPeer); Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ @@ -71,5 +96,24 @@ public class LocatorModelUpdateService extends AbstractLocatorModelService imple Assert.isNotNull(peers); peers.remove(oldPeer.getID()); peers.put(newPeer.getID(), newPeer); + + + final ILocatorModelListener[] listeners = getLocatorModel().getListener(); + if (listeners.length > 0) { + Protocol.invokeLater(new Runnable() { + @Override + public void run() { + for (ILocatorModelListener listener : listeners) { + if (!oldPeer.getID().equals(newPeer.getID())) { + listener.modelChanged(getLocatorModel(), oldPeer, false); + listener.modelChanged(getLocatorModel(), newPeer, true); + } + else { + listener.modelChanged(getLocatorModel(), newPeer, false); + } + } + } + }); + } } } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelUpdateService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelUpdateService.java index 53651c041..d04567b6c 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelUpdateService.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/services/PeerModelUpdateService.java @@ -14,6 +14,7 @@ import java.util.Map; import org.eclipse.core.runtime.Assert; import org.eclipse.tcf.protocol.Protocol; +import org.eclipse.tcf.te.tcf.locator.interfaces.IPeerModelListener; 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; @@ -45,6 +46,18 @@ public class PeerModelUpdateService extends AbstractPeerModelService implements Map<String, IPeerNode> peerNodes = (Map<String, IPeerNode>)getPeerModel().getAdapter(Map.class); Assert.isNotNull(peerNodes); peerNodes.put(peerNode.getPeerId(), peerNode); + + final IPeerModelListener[] listeners = getPeerModel().getListener(); + if (listeners.length > 0) { + Protocol.invokeLater(new Runnable() { + @Override + public void run() { + for (IPeerModelListener listener : listeners) { + listener.modelChanged(getPeerModel(), peerNode, true); + } + } + }); + } } /* (non-Javadoc) @@ -58,6 +71,18 @@ public class PeerModelUpdateService extends AbstractPeerModelService implements Map<String, IPeerNode> peerNodes = (Map<String, IPeerNode>)getPeerModel().getAdapter(Map.class); Assert.isNotNull(peerNodes); peerNodes.remove(peerNode.getPeerId()); + + final IPeerModelListener[] listeners = getPeerModel().getListener(); + if (listeners.length > 0) { + Protocol.invokeLater(new Runnable() { + @Override + public void run() { + for (IPeerModelListener listener : listeners) { + listener.modelChanged(getPeerModel(), peerNode, false); + } + } + }); + } } /* (non-Javadoc) 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 4ed4c1d8e..d837fc36f 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 @@ -12,9 +12,9 @@ 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.IPeerModelListener; 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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.processes.core.model.listener.ModelListener; import org.osgi.framework.BundleContext; @@ -27,7 +27,7 @@ public class CoreBundleActivator extends Plugin { // The trace handler instance private static volatile TraceHandler traceHandler; // The locator model listener instance - /* default */ IModelListener listener; + /* default */ IPeerModelListener listener; // The shared instance private static CoreBundleActivator plugin; @@ -88,7 +88,7 @@ public class CoreBundleActivator extends Plugin { public void run() { if (listener == null) return; // Register the model listener with the locator model - Model.getPeerModel().addListener(listener); + ModelManager.getPeerModel().addListener(listener); } }; @@ -108,7 +108,7 @@ public class CoreBundleActivator extends Plugin { Runnable runnable = new Runnable() { @Override public void run() { - IPeerModel model = Model.getPeerModel(true); + IPeerModel model = ModelManager.getPeerModel(true); if (model != null) model.removeListener(listener); listener = null; } 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 216609e9d..938b3dbb7 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 @@ -22,16 +22,16 @@ 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.IPeerModel, org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode, boolean) + * @see org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter#modelChanged(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) { + public void modelChanged(final IPeerModel model, final IPeerNode peerNode, final boolean added) { Assert.isTrue(Protocol.isDispatchThread(), "Illegal Thread Access"); //$NON-NLS-1$ - if (peer == null) return; + if (peerNode == null) return; if (!added) { // Dispose possibly associated models - ModelManager.disposeRuntimeModel(peer); + ModelManager.disposeRuntimeModel(peerNode); } } } 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 5bccafe5a..a36cf47e3 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 @@ -41,7 +41,7 @@ import org.eclipse.tcf.te.tcf.processes.core.model.runtime.services.RuntimeModel /** - * Model implementation dealing with Processes at runtime. + * ModelManager implementation dealing with Processes at runtime. */ public final class RuntimeModel extends ContainerModelNode implements IRuntimeModel, IFilterable { // Flag to mark the model disposed 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 60b6787b2..a0acbee5a 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,6 @@ 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.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 +24,7 @@ import org.eclipse.ui.forms.editor.IFormPage; /** * Processes properties command handler implementation. */ -public class EditorHandlerDelegate extends AbstractPeerNodeEditorHandlerDelegate { +public class EditorHandlerDelegate extends org.eclipse.tcf.te.tcf.ui.handler.EditorHandlerDelegate { /* (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.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 8e837f2c2..cabdf2183 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 @@ -16,11 +16,11 @@ 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.IPeerModelListener; 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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.services.contexts.interfaces.IContextService; /** @@ -38,15 +38,12 @@ public class AdapterFactory implements IAdapterFactory { * 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) - */ + final IPeerModelListener listener = new ModelAdapter() { @Override - public void locatorModelChanged(IPeerModel model, IPeerNode peer, boolean added) { + public void modelChanged(IPeerModel model, IPeerNode peerNode, 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 (peerNode != null && peerNode.getPeer() != null && !added) { + IContextService adapter = adapters.remove(peerNode.getPeer()); if (adapter instanceof IDisposable) ((IDisposable)adapter).dispose(); } } @@ -55,7 +52,7 @@ public class AdapterFactory implements IAdapterFactory { Runnable runnable = new Runnable() { @Override public void run() { - Model.getPeerModel().addListener(listener); + ModelManager.getPeerModel().addListener(listener); } }; 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 c8211cad4..7815d5474 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 @@ -21,7 +21,7 @@ import org.eclipse.tcf.te.runtime.services.interfaces.constants.ITerminalsConnec 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.IPeerModelLookupService; -import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.locator.model.ModelManager; import org.eclipse.tcf.te.ui.terminals.interfaces.IMementoHandler; import org.eclipse.ui.IMemento; @@ -66,7 +66,7 @@ public class TerminalsMementoHandler implements IMementoHandler { final String peerID = memento.getString("peerID"); //$NON-NLS-1$ if (peerID != null) { - final IPeerModel model = Model.getPeerModel(); + final IPeerModel model = ModelManager.getPeerModel(); Assert.isNotNull(model); final AtomicReference<IPeerNode> peerNode = new AtomicReference<IPeerNode>(); Runnable runnable = new Runnable() { 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 7ca72e643..9efa1f22b 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 @@ -25,11 +25,11 @@ import org.eclipse.swt.widgets.Event; 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.IPeerModelListener; 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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.views.scriptpad.ScriptPad; import org.eclipse.tcf.te.ui.swt.DisplayUtil; import org.eclipse.ui.IActionDelegate2; @@ -46,7 +46,7 @@ public class PeersSubMenuAction extends Action implements IMenuCreator, IViewAct // Reference to the action proxy /* default */ IAction actionProxy; // Reference to the locator model listener - /* default */ IModelListener listener; + /* default */ IPeerModelListener listener; // Parent view part /* default */ IViewPart view; @@ -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(IPeerModel model, IPeerNode peer, boolean added) { + public void modelChanged(final IPeerModel model, final IPeerNode peerNode, final boolean added) { // Re-evaluate the enablement if (actionProxy != null) { - final IPeerNode[] peers = Model.getPeerModel().getPeerNodes(); + final IPeerNode[] peers = ModelManager.getPeerModel().getPeerNodes(); actionProxy.setEnabled(peers != null && peers.length > 0); // If the peer is not set to the view yet, but the action get's @@ -83,7 +83,7 @@ public class PeersSubMenuAction extends Action implements IMenuCreator, IViewAct Protocol.invokeLater(new Runnable() { @Override public void run() { - Model.getPeerModel().addListener(listener); + ModelManager.getPeerModel().addListener(listener); } }); } @@ -104,7 +104,7 @@ public class PeersSubMenuAction extends Action implements IMenuCreator, IViewAct // If the action proxy is already set, it means that the init(IAction) // has been called before. Re-trigger the action enablement. if (actionProxy != null) { - listener.locatorModelChanged(Model.getPeerModel(), null, false); + listener.modelChanged(ModelManager.getPeerModel(), null, false); } } @@ -119,7 +119,7 @@ public class PeersSubMenuAction extends Action implements IMenuCreator, IViewAct // Determine the enablement. The action is disabled // if no peers are available. - IPeerNode[] peers = Model.getPeerModel().getPeerNodes(); + IPeerNode[] peers = ModelManager.getPeerModel().getPeerNodes(); if (peers != null && peers.length > 0) { action.setEnabled(true); if (view instanceof ScriptPad) ((ScriptPad)view).setPeerModel(peers[0]); @@ -160,7 +160,7 @@ public class PeersSubMenuAction extends Action implements IMenuCreator, IViewAct Protocol.invokeLater(new Runnable() { @Override public void run() { - Model.getPeerModel().removeListener(listener); + ModelManager.getPeerModel().removeListener(listener); listener = null; } }); @@ -209,7 +209,7 @@ public class PeersSubMenuAction extends Action implements IMenuCreator, IViewAct boolean selectFirst = selected == null; - IPeerNode[] peerNodes = Model.getPeerModel().getPeerNodes(); + IPeerNode[] peerNodes = ModelManager.getPeerModel().getPeerNodes(); if (peerNodes != null && peerNodes.length > 0) { for (IPeerNode peerNode : peerNodes) { if (isValueAdd(peerNode)) continue; 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 146ec319d..69c2c4bce 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 @@ -62,6 +62,18 @@ bundleId="org.eclipse.tcf.te.tcf.locator" class="org.eclipse.tcf.te.tcf.locator.interfaces.services.IDefaultContextService"/> </service> + + <service + class="org.eclipse.tcf.te.tcf.ui.internal.services.UIService" + id="org.eclipse.tcf.te.tcf.ui.services.UIService"> + <serviceType class="org.eclipse.tcf.te.runtime.services.interfaces.IUIService"/> + <enablement> + <and> + <instanceof value="org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode"/> + <test property="org.eclipse.tcf.te.tcf.locator.isOfType" value="null"/> + </and> + </enablement> + </service> </extension> <!-- Preference contributions --> 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 4f6e2bda3..f8535aa55 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 @@ -43,7 +43,7 @@ import org.eclipse.tcf.te.runtime.persistence.history.HistoryManager; 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.IPeerModelLookupService; -import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.locator.model.ModelManager; 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; @@ -207,7 +207,7 @@ public abstract class AbstractPeerTypeToolbarAction extends Action implements IA Runnable runnable = new Runnable() { @Override public void run() { - IPeerModel model = Model.getPeerModel(); + IPeerModel model = ModelManager.getPeerModel(); Assert.isNotNull(model); peerNode.set(model.getService(IPeerModelLookupService.class).lkupPeerModelById(peerId)); } 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 e7a3ae1f7..1eb08cc9f 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 @@ -32,7 +32,7 @@ import org.eclipse.tcf.te.tcf.core.Tcf; 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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.internal.ImageConsts; import org.eclipse.tcf.te.ui.jface.images.AbstractImageDescriptor; import org.eclipse.ui.IWorkbench; @@ -104,7 +104,7 @@ public class UIPlugin extends AbstractUIPlugin { if (proceedShutdown || forced) { // Terminate the scanner - final IPeerModel model = Model.getPeerModel(true); + final IPeerModel model = ModelManager.getPeerModel(true); // Disconnect all connected connections via the stepper service if (model != null) { diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/controls/ContextSelectorSectionControl.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/controls/ContextSelectorSectionControl.java index d68aa1a31..0128965e0 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/controls/ContextSelectorSectionControl.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/controls/ContextSelectorSectionControl.java @@ -14,7 +14,7 @@ import org.eclipse.core.runtime.Assert; import org.eclipse.jface.dialogs.IDialogPage; import org.eclipse.jface.viewers.DecoratingLabelProvider; import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.navigator.ContentProvider; import org.eclipse.tcf.te.ui.views.controls.AbstractContextSelectorControl; import org.eclipse.tcf.te.ui.views.navigator.DelegatingLabelProvider; @@ -45,7 +45,7 @@ public class ContextSelectorSectionControl extends AbstractContextSelectorContro */ @Override protected Object getInitialViewerInput() { - return Model.getPeerModel(); + return ModelManager.getPeerModel(); } /* (non-Javadoc) diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/PeerSelectionDialog.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/PeerSelectionDialog.java index 9f210081c..9898b03a7 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/PeerSelectionDialog.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/dialogs/PeerSelectionDialog.java @@ -9,9 +9,6 @@ *******************************************************************************/ package org.eclipse.tcf.te.tcf.ui.dialogs; -import java.util.Map; -import java.util.concurrent.atomic.AtomicReference; - import org.eclipse.core.runtime.Assert; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.IMessageProvider; @@ -32,11 +29,8 @@ 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.services.ILocator; 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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.jface.dialogs.CustomTitleAreaDialog; @@ -147,22 +141,7 @@ public class PeerSelectionDialog extends CustomTitleAreaDialog { // Subclasses may customize the viewer before setting the input configureTableViewer(viewer); - final AtomicReference<IPeer[]> peers = new AtomicReference<IPeer[]>(null); - - 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()])); - } - } - }); - - viewer.setInput(peers.get()); + viewer.setInput(ModelManager.getLocatorModel().getPeers()); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { @@ -254,7 +233,7 @@ public class PeerSelectionDialog extends CustomTitleAreaDialog { * @return The locator model instance. */ protected IPeerModel getModel() { - return Model.getPeerModel(); + return ModelManager.getPeerModel(); } /** 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 fc92ccb17..ac388f209 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 @@ -40,7 +40,7 @@ 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.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.model.ModelManager; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; import org.eclipse.tcf.te.tcf.ui.activator.UIPlugin; import org.eclipse.tcf.te.tcf.ui.editor.controls.InfoSectionPeerNameControl; @@ -456,7 +456,7 @@ public class GeneralInformationSection extends AbstractSection { @Override public void run() { // Get all peer model objects - IPeerNode[] peers = Model.getPeerModel().getPeerNodes(); + IPeerNode[] peers = ModelManager.getPeerModel().getPeerNodes(); // Loop them and find the ones which are of our handled types for (IPeerNode peerNode : peers) { if (!peerNode.equals(od)) { 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 3f5483c9c..387bef28d 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 @@ -41,7 +41,7 @@ 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.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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.interfaces.handler.IDeleteHandlerDelegate; @@ -269,7 +269,7 @@ public class DeleteHandler extends AbstractHandler { Protocol.invokeLater(new Runnable() { @Override public void run() { - IPeerModelRefreshService service = Model.getPeerModel().getService(IPeerModelRefreshService.class); + IPeerModelRefreshService service = ModelManager.getPeerModel().getService(IPeerModelRefreshService.class); // Refresh the model now (must be executed within the TCF dispatch thread) if (service != null) service.refresh(new Callback() { @Override diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/AbstractPeerNodeEditorHandlerDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/EditorHandlerDelegate.java index 963f34125..fe1a3b789 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/AbstractPeerNodeEditorHandlerDelegate.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/handler/EditorHandlerDelegate.java @@ -16,11 +16,12 @@ 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; +import org.eclipse.ui.IEditorPart; /** - * AbstractPeerNodeEditorHandlerDelegate + * EditorHandlerDelegate */ -public abstract class AbstractPeerNodeEditorHandlerDelegate implements IEditorHandlerDelegate { +public class EditorHandlerDelegate implements IEditorHandlerDelegate { /* (non-Javadoc) * @see org.eclipse.tcf.te.ui.interfaces.handler.IEditorHandlerDelegate#getEditorInput(java.lang.Object) @@ -33,4 +34,11 @@ public abstract class AbstractPeerNodeEditorHandlerDelegate implements IEditorHa } return new EditorInput(model != null ? model : element); } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.ui.interfaces.handler.IEditorHandlerDelegate#postOpenEditor(org.eclipse.ui.IEditorPart, java.lang.Object) + */ + @Override + public void postOpenEditor(IEditorPart editor, Object element) { + } } 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 e7b34928d..9d736be66 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 @@ -42,7 +42,7 @@ 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.IPeerModelRefreshService; -import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.locator.nodes.PeerRedirector; import org.eclipse.tcf.te.tcf.ui.help.IContextHelpIds; import org.eclipse.tcf.te.tcf.ui.nls.Messages; @@ -174,7 +174,7 @@ public class RenameHandler extends AbstractHandler { Protocol.invokeLater(new Runnable() { @Override public void run() { - final IPeerModelRefreshService service = Model.getPeerModel().getService(IPeerModelRefreshService.class); + final IPeerModelRefreshService service = ModelManager.getPeerModel().getService(IPeerModelRefreshService.class); // Refresh the model now (must be executed within the TCF dispatch thread) if (service != null) { service.refresh(new Callback() { @@ -215,7 +215,7 @@ public class RenameHandler extends AbstractHandler { public void run() { name.set(node.getPeer().getName()); - IPeerModel model = Model.getPeerModel(); + IPeerModel model = ModelManager.getPeerModel(); Assert.isNotNull(model); IPeerNode[] peers = model.getPeerNodes(); for (IPeerNode peer : peers) { 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 8b577cf08..3982e6517 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 @@ -35,7 +35,7 @@ import org.eclipse.tcf.te.tcf.core.peers.Peer; 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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.dialogs.RenameDialog; import org.eclipse.tcf.te.ui.views.ViewsUtil; @@ -108,7 +108,7 @@ public class EditorSaveAsAdapter implements IEditorSaveAsAdapter { @Override protected void internalDone(Object caller, IStatus status) { // Get the peer model node from the model and select it in the tree - IPeerNode peerNode = Model.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(attrs.get(IPeer.ATTR_ID)); + IPeerNode peerNode = ModelManager.getPeerModel().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() { - IPeerModelRefreshService service = Model.getPeerModel().getService(IPeerModelRefreshService.class); + IPeerModelRefreshService service = ModelManager.getPeerModel().getService(IPeerModelRefreshService.class); // Refresh the model now (must be executed within the TCF dispatch thread) if (service != null) { service.refresh(cb); @@ -150,7 +150,7 @@ public class EditorSaveAsAdapter implements IEditorSaveAsAdapter { @Override public void run() { // Get all peer model objects - IPeerNode[] peers = Model.getPeerModel().getPeerNodes(); + IPeerNode[] peers = ModelManager.getPeerModel().getPeerNodes(); // Loop them and find the ones which are of our handled types for (IPeerNode peerNode : peers) { String name = peerNode.getPeer().getName(); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PeerNodeFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PeerNodeFactory.java index 5bf7547d2..2b4d30bb5 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PeerNodeFactory.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/adapters/PeerNodeFactory.java @@ -19,7 +19,7 @@ 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.tcf.locator.model.ModelManager; import org.eclipse.tcf.te.ui.views.editor.EditorInput; import org.eclipse.ui.IElementFactory; import org.eclipse.ui.IMemento; @@ -43,7 +43,7 @@ public class PeerNodeFactory implements IElementFactory { Runnable runnable = new Runnable() { @Override public void run() { - node.set(Model.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId)); + node.set(ModelManager.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId)); } }; @@ -60,8 +60,8 @@ public class PeerNodeFactory implements IElementFactory { Runnable runnable2 = new Runnable() { @Override public void run() { - Model.getPeerModel().getService(IPeerModelRefreshService.class).refresh(null); - node.set(Model.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId)); + ModelManager.getPeerModel().getService(IPeerModelRefreshService.class).refresh(null); + node.set(ModelManager.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(peerId)); } }; 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 1310fc1cc..d3953e411 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 @@ -30,7 +30,7 @@ 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.IPeerModelLookupService; -import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.locator.model.ModelManager; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; @@ -157,7 +157,7 @@ public class DefaultContextService extends AbstractService implements IDefaultCo Runnable runnable = new Runnable() { @Override public void run() { - IPeerModel model = Model.getPeerModel(); + IPeerModel model = ModelManager.getPeerModel(); Assert.isNotNull(model); peerNode.set(model.getService(IPeerModelLookupService.class).lkupPeerModelById(peerId)); } diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/services/UIService.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/services/UIService.java new file mode 100644 index 000000000..ed0d67163 --- /dev/null +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/services/UIService.java @@ -0,0 +1,37 @@ +/** + * UIService.java + * Created on Feb 25, 2013 + * + * Copyright (c) 2013 Wind River Systems, Inc. + * + * The right to copy, distribute, modify, or otherwise make use + * of this software may be licensed only pursuant to the terms + * of an applicable Wind River license agreement. + */ +package org.eclipse.tcf.te.tcf.ui.internal.services; + +import org.eclipse.tcf.te.runtime.services.AbstractService; +import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; +import org.eclipse.tcf.te.tcf.ui.handler.EditorHandlerDelegate; +import org.eclipse.tcf.te.ui.interfaces.handler.IEditorHandlerDelegate; + +/** + * UI service implementation. + */ +public class UIService extends AbstractService implements IUIService { + final IEditorHandlerDelegate editorHandlerDelegate = new EditorHandlerDelegate(); + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.services.interfaces.IUIService#getDelegate(java.lang.Object, java.lang.Class) + */ + @SuppressWarnings("unchecked") + @Override + public <V> V getDelegate(Object context, Class<? extends V> clazz) { + + if (IEditorHandlerDelegate.class.isAssignableFrom(clazz)) { + return (V) editorHandlerDelegate; + } + return null; + } + +} 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 be1ba09b4..ef83fcc20 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 @@ -26,13 +26,15 @@ import org.eclipse.tcf.protocol.IPeer; import org.eclipse.tcf.protocol.Protocol; import org.eclipse.tcf.te.runtime.concurrent.util.ExecutorsUtil; 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.ILocatorModelListener; +import org.eclipse.tcf.te.tcf.locator.interfaces.IPeerModelListener; +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.nodes.IPeerRedirector; 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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.activator.UIPlugin; import org.eclipse.tcf.te.tcf.ui.internal.preferences.IPreferenceKeys; import org.eclipse.tcf.te.tcf.ui.navigator.nodes.PeerRedirectorGroupNode; @@ -66,8 +68,10 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent private final static String CURRENT_USER_FILTER_ID = "org.eclipse.tcf.te.tcf.ui.navigator.PeersByCurrentUserFilter"; //$NON-NLS-1$ + // The peer model listener instance + /* default */ IPeerModelListener peerModelListener = null; // The locator model listener instance - /* default */ IModelListener modelListener = null; + /* default */ ILocatorModelListener locatorModelListener = null; // Internal map of PeerRedirectorGroupNodes per peer id private final Map<String, PeerRedirectorGroupNode> roots = new HashMap<String, PeerRedirectorGroupNode>(); @@ -119,9 +123,9 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent /* default */ final boolean isFiltered(IPeerNode peerNode) { Assert.isNotNull(peerNode); - boolean filtered = isFiltered(peerNode.getPeer()); + boolean filtered = false; - if (!filtered && !showInvisible) { + if (!showInvisible) { filtered |= !peerNode.isVisible(); } @@ -171,12 +175,12 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent // If the parent element is a category, than we assume // the locator model as parent element. if (parentElement instanceof ICategory) { - parentElement = Model.getPeerModel(); + parentElement = ModelManager.getPeerModel(); } // If the parent element is the root element and "all" // categories are hidden, assume the locator model as parent element if (parentElement instanceof IRoot && allHidden) { - parentElement = Model.getPeerModel(); + parentElement = ModelManager.getPeerModel(); } // If it is the locator model, get the peers @@ -186,55 +190,45 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent final List<Object> candidates = new ArrayList<Object>(); if (IUIConstants.ID_CAT_FAVORITES.equals(catID)) { - for (IPeerNode peer : peerNodes) { - ICategorizable categorizable = (ICategorizable)peer.getAdapter(ICategorizable.class); + for (IPeerNode peerNode : peerNodes) { + ICategorizable categorizable = (ICategorizable)peerNode.getAdapter(ICategorizable.class); if (categorizable == null) { - categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(peer, ICategorizable.class); + categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(peerNode, ICategorizable.class); } Assert.isNotNull(categorizable); boolean isFavorite = Managers.getCategoryManager().belongsTo(catID, categorizable.getId()); - if (isFavorite && !candidates.contains(peer)) { - candidates.add(peer); + if (isFavorite && !candidates.contains(peerNode)) { + candidates.add(peerNode); } } } else if (IUIConstants.ID_CAT_MY_TARGETS.equals(catID)) { - for (IPeerNode peer : peerNodes) { + for (IPeerNode peerNode : peerNodes) { // Check for filtered nodes (Value-add's and Proxies) - if (isFiltered(peer)) { + if (isFiltered(peerNode)) { continue; } - ICategorizable categorizable = (ICategorizable)peer.getAdapter(ICategorizable.class); + ICategorizable categorizable = (ICategorizable)peerNode.getAdapter(ICategorizable.class); if (categorizable == null) { - categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(peer, ICategorizable.class); + categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(peerNode, ICategorizable.class); } Assert.isNotNull(categorizable); - // 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) { - // If the "Neighborhood" category is not visible, ignore the startedByCurrentUser flag - if (neighborhoodCat != null && !neighborhoodCat.isEnabled()) { - startedByCurrentUser = true; - } - } - boolean isMyTargets = Managers.getCategoryManager().belongsTo(catID, categorizable.getId()); - if (!isMyTargets && startedByCurrentUser) { - // "Value-add's" are not saved to the category persistence automatically + if (!isMyTargets) { Managers.getCategoryManager().addTransient(catID, categorizable.getId()); isMyTargets = true; } - if (isMyTargets && !candidates.contains(peer)) { - candidates.add(peer); + if (isMyTargets && !candidates.contains(peerNode)) { + candidates.add(peerNode); } } } else if (IUIConstants.ID_CAT_NEIGHBORHOOD.equals(catID)) { - for (IPeer peer : Model.getLocatorModel().getPeers()) { + for (IPeer peer : ModelManager.getLocatorModel().getPeers()) { // Check for filtered nodes (Value-add's and Proxies) if (isFiltered(peer)) { continue; @@ -246,28 +240,28 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent } } else if (catID != null) { - for (IPeerNode peer : peerNodes) { - ICategorizable categorizable = (ICategorizable)peer.getAdapter(ICategorizable.class); + for (IPeerNode peerNode : peerNodes) { + ICategorizable categorizable = (ICategorizable)peerNode.getAdapter(ICategorizable.class); if (categorizable == null) { - categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(peer, ICategorizable.class); + categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(peerNode, ICategorizable.class); } Assert.isNotNull(categorizable); - boolean belongsTo = category.belongsTo(peer); - if (belongsTo && !candidates.contains(peer)) { + boolean belongsTo = category.belongsTo(peerNode); + if (belongsTo && !candidates.contains(peerNode)) { Managers.getCategoryManager().addTransient(catID, categorizable.getId()); - candidates.add(peer); + candidates.add(peerNode); } } } else { - for (IPeerNode peer : peerNodes) { + for (IPeerNode peerNode : peerNodes) { // Check for filtered nodes (Value-add's and Proxies) - if (isFiltered(peer)) { + if (isFiltered(peerNode)) { continue; } - if (!candidates.contains(peer)) { - candidates.add(peer); + if (!candidates.contains(peerNode)) { + candidates.add(peerNode); } } } @@ -320,7 +314,7 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent final Runnable runnable = new Runnable() { @Override public void run() { - parent.set(Model.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(((PeerRedirectorGroupNode)element).peerId)); + parent.set(ModelManager.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(((PeerRedirectorGroupNode)element).peerId)); } }; @@ -408,16 +402,27 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent */ @Override public void dispose() { - if (modelListener != null) { + if (peerModelListener != null) { Runnable runnable = new Runnable() { @Override public void run() { - Model.getPeerModel().removeListener(modelListener); + ModelManager.getPeerModel().removeListener(peerModelListener); } }; if (Protocol.isDispatchThread()) runnable.run(); else Protocol.invokeAndWait(runnable); - modelListener = null; + peerModelListener = null; + } + if (locatorModelListener != null) { + Runnable runnable = new Runnable() { + @Override + public void run() { + ModelManager.getLocatorModel().removeListener(locatorModelListener); + } + }; + if (Protocol.isDispatchThread()) runnable.run(); + else Protocol.invokeAndWait(runnable); + locatorModelListener = null; } roots.clear(); @@ -428,25 +433,36 @@ public class ContentProvider implements ICommonContentProvider, ITreePathContent */ @Override public void inputChanged(final Viewer viewer, Object oldInput, Object newInput) { - final IPeerModel model = Model.getPeerModel(); + final IPeerModel peerModel = ModelManager.getPeerModel(); + final ILocatorModel locatorModel = ModelManager.getLocatorModel(); // Create and attach the model listener if not yet done - if (modelListener == null && model != null && viewer instanceof CommonViewer) { - modelListener = new ModelListener(model, (CommonViewer)viewer); + if (peerModelListener == null && peerModel != null && viewer instanceof CommonViewer) { + peerModelListener = new PeerModelListener(peerModel, (CommonViewer)viewer); + Protocol.invokeLater(new Runnable() { + @Override + public void run() { + peerModel.addListener(peerModelListener); + } + }); + } + // Create and attach the model listener if not yet done + if (locatorModelListener == null && locatorModel != null && viewer instanceof CommonViewer) { + locatorModelListener = new LocatorModelListener(locatorModel, (CommonViewer)viewer); Protocol.invokeLater(new Runnable() { @Override public void run() { - model.addListener(modelListener); + locatorModel.addListener(locatorModelListener); } }); } - if (model != null && newInput instanceof IRoot) { + if (peerModel != null && newInput instanceof IRoot) { // Refresh the model asynchronously Protocol.invokeLater(new Runnable() { @Override public void run() { - model.getService(IPeerModelRefreshService.class).refresh(null); + peerModel.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/LocatorModelListener.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/LocatorModelListener.java new file mode 100644 index 000000000..7b9570112 --- /dev/null +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/LocatorModelListener.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * 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.ui.navigator; + +import org.eclipse.core.runtime.Assert; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.tcf.protocol.IPeer; +import org.eclipse.tcf.te.tcf.locator.interfaces.ILocatorModelListener; +import org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel; +import org.eclipse.ui.navigator.CommonViewer; + + +/** + * Locator model listener implementation. + */ +public class LocatorModelListener implements ILocatorModelListener { + private final ILocatorModel parentModel; + /* default */ final CommonViewer viewer; + + /** + * Constructor. + * + * @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 LocatorModelListener(ILocatorModel parent, CommonViewer viewer) { + Assert.isNotNull(parent); + Assert.isNotNull(viewer); + + this.parentModel = parent; + this.viewer = viewer; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.ILocatorModelListener#modelChanged(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel, org.eclipse.tcf.protocol.IPeer, boolean) + */ + @Override + public void modelChanged(ILocatorModel model, IPeer peer, boolean added) { + if (parentModel.equals(model)) { + // Locator model changed -> refresh the tree + Tree tree = viewer.getTree(); + if (tree != null && !tree.isDisposed()) { + Display display = tree.getDisplay(); + display.asyncExec(new Runnable() { + @Override + public void run() { + if (viewer.getTree() != null && !viewer.getTree().isDisposed()) { + viewer.refresh(); + } + } + }); + } + } + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.tcf.locator.interfaces.ILocatorModelListener#modelDisposed(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.ILocatorModel) + */ + @Override + public void modelDisposed(ILocatorModel model) { + } +} 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 5da180b9b..9de72d744 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 @@ -23,7 +23,7 @@ import org.eclipse.tcf.te.runtime.services.interfaces.delegates.ILabelProviderDe import org.eclipse.tcf.te.runtime.utils.net.IPAddressUtil; 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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.activator.UIPlugin; import org.eclipse.tcf.te.tcf.ui.internal.ImageConsts; import org.eclipse.tcf.te.tcf.ui.navigator.images.PeerImageDescriptor; @@ -122,7 +122,7 @@ public class PeerLabelProviderDelegate extends LabelProvider implements ILabelDe Runnable runnable = new Runnable() { @Override public void run() { - count.set(Model.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelByName(label).length); + count.set(ModelManager.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelByName(label).length); } }; 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/PeerModelListener.java index 269bcc313..070d7d6a9 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/PeerModelListener.java @@ -14,7 +14,7 @@ import org.eclipse.swt.widgets.Display; 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.IPeerModelListener; 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; @@ -29,19 +29,19 @@ import org.eclipse.ui.navigator.CommonViewer; /** - * TCF locator model listener implementation. + * Peer model listener implementation. */ -public class ModelListener extends ModelAdapter { +public class PeerModelListener extends ModelAdapter { private final IPeerModel parentModel; /* default */ final CommonViewer viewer; /** * Constructor. * - * @param parent The parent locator model. Must not be <code>null</code>. + * @param parent The parent peer model. Must not be <code>null</code>. * @param viewer The common viewer instance. Must not be <code>null</code>. */ - public ModelListener(IPeerModel parent, CommonViewer viewer) { + public PeerModelListener(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.IPeerModel, org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode, boolean) + * @see org.eclipse.tcf.te.tcf.locator.listener.ModelAdapter#modelChanged(org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerModel, org.eclipse.tcf.te.tcf.locator.interfaces.nodes.IPeerNode, boolean) */ @Override - public void locatorModelChanged(final IPeerModel model, final IPeerNode peerNode, final boolean added) { + public void modelChanged(final IPeerModel model, final IPeerNode peerNode, final boolean added) { if (parentModel.equals(model)) { // Locator model changed -> refresh the tree Tree tree = viewer.getTree(); @@ -70,12 +70,12 @@ public class ModelListener extends ModelAdapter { } if (peerNode != null) { - // Check if the peer model node can be adapted to IModelListener. + // Check if the peer model node can be adapted to IPeerModelListener. IAdapterService service = ServiceManager.getInstance().getService(peerNode, IAdapterService.class); - IModelListener listener = service != null ? service.getAdapter(peerNode, IModelListener.class) : null; + IPeerModelListener listener = service != null ? service.getAdapter(peerNode, IPeerModelListener.class) : null; // If yes -> Invoke the adapted model listener instance if (listener != null) { - listener.locatorModelChanged(model, peerNode, added); + listener.modelChanged(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. 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 5b631653a..056790fac 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 @@ -38,7 +38,7 @@ import org.eclipse.tcf.te.tcf.core.peers.Peer; 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.locator.model.ModelManager; 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.IRoot; @@ -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 IPeerModelRefreshService service = Model.getPeerModel().getService(IPeerModelRefreshService.class); + final IPeerModelRefreshService service = ModelManager.getPeerModel().getService(IPeerModelRefreshService.class); if (service != null) { Runnable runnable = new Runnable() { @Override @@ -188,7 +188,7 @@ public class CommonDnD { protected void internalDone(Object caller, org.eclipse.core.runtime.IStatus status) { IPeerNode peerNode = null; if (finalNewPeer != null) { - IPeerModelLookupService service = Model.getPeerModel().getService(IPeerModelLookupService.class); + IPeerModelLookupService service = ModelManager.getPeerModel().getService(IPeerModelLookupService.class); if (service != null) { peerNode = service.lkupPeerModelById(finalNewPeer.getID()); } @@ -380,7 +380,7 @@ public class CommonDnD { @Override public void run() { // Get all peer model objects - IPeerNode[] peers = Model.getPeerModel().getPeerNodes(); + IPeerNode[] peers = ModelManager.getPeerModel().getPeerNodes(); // Loop them and find the ones which are of our handled types for (IPeerNode peerNode : peers) { String name = peerNode.getPeer().getName(); 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 31adead8a..0bf2c4960 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 @@ -26,10 +26,10 @@ import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode; 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.IPeerModelListener; 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.locator.model.ModelManager; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.Section; @@ -44,13 +44,13 @@ public abstract class AbstractContextSelectorSection extends org.eclipse.tcf.te. private boolean disposed = false; - final IModelListener modelListener = new IModelListener() { + final IPeerModelListener modelListener = new IPeerModelListener() { @Override - public void locatorModelDisposed(IPeerModel model) { + public void modelDisposed(IPeerModel model) { refreshSelectorControl(); } @Override - public void locatorModelChanged(IPeerModel model, IPeerNode peerNode, boolean added) { + public void modelChanged(final IPeerModel model, final IPeerNode peerNode, final boolean added) { refreshSelectorControl(); } }; @@ -103,7 +103,7 @@ public abstract class AbstractContextSelectorSection extends org.eclipse.tcf.te. Protocol.invokeAndWait(new Runnable() { @Override public void run() { - Model.getPeerModel().removeListener(modelListener); + ModelManager.getPeerModel().removeListener(modelListener); } }); } @@ -117,7 +117,7 @@ public abstract class AbstractContextSelectorSection extends org.eclipse.tcf.te. Protocol.invokeLater(new Runnable() { @Override public void run() { - Model.getPeerModel().addListener(modelListener); + ModelManager.getPeerModel().addListener(modelListener); } }); EventManager.getInstance().addEventListener(eventListener, ChangeEvent.class); 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 fdfdc6a79..bcc6713f9 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 @@ -11,14 +11,10 @@ package org.eclipse.tcf.te.tcf.ui.sections; import java.util.HashMap; import java.util.Map; -import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.jface.window.Window; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; @@ -45,7 +41,6 @@ import org.eclipse.tcf.te.ui.interfaces.data.IDataExchangeNode; import org.eclipse.tcf.te.ui.jface.interfaces.IValidatingContainer; import org.eclipse.tcf.te.ui.swt.SWTControlUtil; import org.eclipse.tcf.te.ui.views.editor.pages.AbstractEditorPage; -import org.eclipse.tcf.te.ui.views.navigator.ViewerSorter; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.Section; @@ -164,34 +159,6 @@ public class SimulatorTypeSelectionSection extends AbstractSection implements ID protected boolean supportsMultiSelection() { return false; } - @Override - protected void configureTableViewer(TableViewer viewer) { - viewer.addFilter(new ViewerFilter() { - @Override - public boolean select(Viewer viewer, Object parentElement, final Object element) { - if (element instanceof IPeer) { - final IPeer peer = (IPeer)element; - final AtomicBoolean isValueAdd = new AtomicBoolean(); - final AtomicBoolean isCLI = new AtomicBoolean(); - Protocol.invokeAndWait(new Runnable() { - @Override - public void run() { - String value = peer.getAttributes().get("ValueAdd"); //$NON-NLS-1$ - isValueAdd.set(value != null && ("1".equals(value.trim()) || Boolean.parseBoolean(value.trim()))); //$NON-NLS-1$ - isCLI.set(peer.getName() != null - && (peer.getName().startsWith("Eclipse CLI") //$NON-NLS-1$ - || peer.getName().startsWith("Eclipse Command Server") //$NON-NLS-1$ - || peer.getName().endsWith("CLI Server") //$NON-NLS-1$ - || peer.getName().endsWith("CLI Client"))); //$NON-NLS-1$ - } - }); - return !isValueAdd.get() && !isCLI.get(); - } - return false; - } - }); - viewer.setSorter(new ViewerSorter()); - } }; // Open the dialog 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 b4adf44f4..378d4ab75 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 @@ -36,7 +36,7 @@ import org.eclipse.tcf.te.tcf.core.peers.Peer; 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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.tcf.ui.wizards.pages.NewTargetWizardPage; import org.eclipse.tcf.te.ui.interfaces.data.IDataExchangeNode; @@ -128,13 +128,13 @@ public class NewTargetWizard extends AbstractWizard implements INewWizard { Protocol.invokeLater(new Runnable() { @Override public void run() { - IPeerModelRefreshService service = Model.getPeerModel().getService(IPeerModelRefreshService.class); + IPeerModelRefreshService service = ModelManager.getPeerModel().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 IPeerNode peerNode = Model.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(attrs.get(IPeer.ATTR_ID)); + final IPeerNode peerNode = ModelManager.getPeerModel().getService(IPeerModelLookupService.class).lkupPeerModelById(attrs.get(IPeer.ATTR_ID)); if (peerNode != null) { // Refresh the viewer ViewsUtil.refresh(IUIConstants.ID_EXPLORER); 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 df2ce0236..7be4de044 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 @@ -28,7 +28,7 @@ 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.IPeerNode; -import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.controls.PeerNameControl; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.controls.validator.RegexValidator; @@ -310,7 +310,7 @@ public abstract class AbstractConfigWizardPage extends AbstractFormsWizardPage i @Override public void run() { // Get all peer model objects - IPeerNode[] peers = Model.getPeerModel().getPeerNodes(); + IPeerNode[] peers = ModelManager.getPeerModel().getPeerNodes(); // Loop them and find the ones which are of our handled types for (IPeerNode peerNode : peers) { String name = peerNode.getPeer().getName(); 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 ea2308879..dde95c4bb 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 @@ -29,7 +29,7 @@ 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.IPeerNode; -import org.eclipse.tcf.te.tcf.locator.model.Model; +import org.eclipse.tcf.te.tcf.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.controls.CustomTransportPanel; import org.eclipse.tcf.te.tcf.ui.controls.PeerAttributesTablePart; import org.eclipse.tcf.te.tcf.ui.controls.PeerNameControl; @@ -454,7 +454,7 @@ public class NewTargetWizardPage extends AbstractValidatingWizardPage implements @Override public void run() { // Get all peer model objects - IPeerNode[] peers = Model.getPeerModel().getPeerNodes(); + IPeerNode[] peers = ModelManager.getPeerModel().getPeerNodes(); // Loop them and find the ones which are of our handled types for (IPeerNode peerNode : peers) { String name = peerNode.getPeer().getName(); 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 21d53115b..3f23063c5 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 @@ -53,7 +53,7 @@ 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.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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.views.navigator.DelegatingLabelProvider; import org.eclipse.ui.progress.UIJob; @@ -167,7 +167,7 @@ public class PeerExportWizardPage extends WizardPage { } }; fViewer.addCheckStateListener(checkListener); - fViewer.setInput(Model.getPeerModel()); + fViewer.setInput(ModelManager.getPeerModel()); // top level group Composite buttonComposite = new Composite(resourcesGroup, SWT.NONE); 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 e4dfdfc6b..94cec5bf7 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 @@ -60,7 +60,7 @@ 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.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.locator.model.ModelManager; import org.eclipse.tcf.te.tcf.ui.nls.Messages; import org.eclipse.tcf.te.ui.views.navigator.DelegatingLabelProvider; import org.eclipse.ui.progress.UIJob; @@ -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 IPeerModel model = Model.getPeerModel(); + final IPeerModel model = ModelManager.getPeerModel(); final IProgressMonitor finalMonitor; if (monitor == null) { finalMonitor = new NullProgressMonitor(); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/model/ModelTestCase.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/model/ModelTestCase.java index 9e804492f..efc7369a6 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/model/ModelTestCase.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/model/ModelTestCase.java @@ -27,7 +27,7 @@ import org.eclipse.tcf.te.runtime.services.interfaces.filetransfer.IFileTransfer import org.eclipse.tcf.te.tests.CoreTestCase; /** - * Model test cases. + * ModelManager test cases. */ public class ModelTestCase extends CoreTestCase { 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 2a96fa147..9839c2109 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 @@ -25,7 +25,7 @@ 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.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.locator.model.ModelManager; import org.eclipse.tcf.te.tests.CoreTestCase; /** @@ -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 IPeerModel model = Model.getPeerModel(); + final IPeerModel model = ModelManager.getPeerModel(); assertNotNull("Failed to access locator model instance.", model); //$NON-NLS-1$ // The expected peer id is "<transport>:<canonical IP>:<port>" diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/model/ModelTestCase.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/model/ModelTestCase.java index 1757a27a0..9e0780ef6 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/model/ModelTestCase.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/tcf/model/ModelTestCase.java @@ -45,7 +45,7 @@ public class ModelTestCase extends CoreTestCase { // Create the TCF test model instance IModel model = new TestModel(); assertNotNull("Failed to create test model instance", model); //$NON-NLS-1$ - assertFalse("Model is disposed but should not", model.isDisposed()); //$NON-NLS-1$ + assertFalse("ModelManager is disposed but should not", model.isDisposed()); //$NON-NLS-1$ // Get the test model service IModelService service = model.getService(TestModelService.class); @@ -54,7 +54,7 @@ public class ModelTestCase extends CoreTestCase { // Dispose the model model.dispose(); - assertTrue("Model is not disposed but should", model.isDisposed()); //$NON-NLS-1$ + assertTrue("ModelManager is not disposed but should", model.isDisposed()); //$NON-NLS-1$ org.eclipse.tcf.te.tcf.core.model.activator.CoreBundleActivator.getContext(); org.eclipse.tcf.te.tcf.core.model.activator.CoreBundleActivator.getUniqueIdentifier(); diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/expressions/PropertyTester.java b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/expressions/PropertyTester.java index d71046ff4..3560a5348 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/expressions/PropertyTester.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/expressions/PropertyTester.java @@ -13,7 +13,6 @@ import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; import org.eclipse.tcf.te.ui.interfaces.handler.IEditorHandlerDelegate; import org.eclipse.tcf.te.ui.views.editor.Editor; -import org.eclipse.tcf.te.ui.views.editor.EditorInput; import org.eclipse.tcf.te.ui.views.extensions.EditorPageBindingExtensionPointManager; import org.eclipse.ui.IEditorInput; @@ -32,9 +31,10 @@ public class PropertyTester extends org.eclipse.core.expressions.PropertyTester if ("hasApplicableEditorBindings".equals(property)) { //$NON-NLS-1$ IUIService service = ServiceManager.getInstance().getService(receiver, IUIService.class); IEditorHandlerDelegate delegate = service != null ? service.getDelegate(receiver, IEditorHandlerDelegate.class) : null; - IEditorInput input = (delegate != null) ? delegate.getEditorInput(receiver) : new EditorInput(receiver); + IEditorInput input = (delegate != null) ? delegate.getEditorInput(receiver) : null; - return (expectedValue != null ? expectedValue : Boolean.TRUE).equals(Boolean.valueOf(EditorPageBindingExtensionPointManager.getInstance().getApplicableEditorPageBindings(input).length > 0)); + return (expectedValue != null ? expectedValue : Boolean.TRUE).equals( + input != null ? Boolean.valueOf(EditorPageBindingExtensionPointManager.getInstance().getApplicableEditorPageBindings(input).length > 0) : Boolean.FALSE); } if ("isDirty".equals(property) && receiver instanceof Editor && expectedValue instanceof Boolean) { //$NON-NLS-1$ diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/handler/OpenEditorHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/handler/OpenEditorHandler.java index 442b774e6..047693c74 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/handler/OpenEditorHandler.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/handler/OpenEditorHandler.java @@ -24,7 +24,6 @@ import org.eclipse.tcf.te.runtime.services.ServiceManager; import org.eclipse.tcf.te.runtime.services.interfaces.IUIService; import org.eclipse.tcf.te.ui.interfaces.handler.IEditorHandlerDelegate; import org.eclipse.tcf.te.ui.views.activator.UIPlugin; -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.nls.Messages; import org.eclipse.ui.IEditorInput; @@ -99,7 +98,7 @@ public class OpenEditorHandler extends AbstractHandler { // Create the editor input object IUIService service = ServiceManager.getInstance().getService(element, IUIService.class); IEditorHandlerDelegate delegate = service != null ? service.getDelegate(element, IEditorHandlerDelegate.class) : null; - IEditorInput input = (delegate != null) ? delegate.getEditorInput(element) : new EditorInput(element); + IEditorInput input = (delegate != null) ? delegate.getEditorInput(element) : null; try { // Opens the Target Explorer properties editor IEditorPart editor = page.openEditor(input, IUIConstants.ID_EDITOR); |