diff --git a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTarget.java b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTarget.java index a5b7da1f75a..55ab598d645 100644 --- a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTarget.java +++ b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTarget.java @@ -14,12 +14,10 @@ public class LaunchTarget extends PlatformObject implements ILaunchTarget { private final String typeId; private final String id; - private final String name; - public LaunchTarget(String typeId, String id, String name) { + public LaunchTarget(String typeId, String id) { this.typeId = typeId; this.id = id; - this.name = name; } @Override @@ -27,11 +25,6 @@ public class LaunchTarget extends PlatformObject implements ILaunchTarget { return id; } - @Override - public String getName() { - return name; - } - @Override public String getTypeId() { return typeId; diff --git a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTargetManager.java b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTargetManager.java index 26a6b9640a9..d485a0d130c 100644 --- a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTargetManager.java +++ b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTargetManager.java @@ -39,8 +39,7 @@ public class LaunchTargetManager implements ILaunchTargetManager { private List listeners = new LinkedList<>(); private static final String DELIMETER1 = ","; //$NON-NLS-1$ - private static final String DELIMETER2 = "!"; //$NON-NLS-1$ - private static final String DELIMETER3 = ":"; //$NON-NLS-1$ + private static final String DELIMETER2 = ":"; //$NON-NLS-1$ private Preferences getTargetsPref() { return InstanceScope.INSTANCE.getNode(Activator.getDefault().getBundle().getSymbolicName()) @@ -75,12 +74,7 @@ public class LaunchTargetManager implements ILaunchTargetManager { } for (String name : prefs.get(typeId, "").split(DELIMETER1)) { //$NON-NLS-1$ - if (name.contains(DELIMETER2)) { - String[] list = name.split(DELIMETER2); - type.put(list[0], new LaunchTarget(typeId, list[0], list[1])); - } else { - type.put(name, new LaunchTarget(typeId, name, name)); - } + type.put(name, new LaunchTarget(typeId, name)); } } } catch (BackingStoreException e) { @@ -162,7 +156,7 @@ public class LaunchTargetManager implements ILaunchTargetManager { } @Override - public ILaunchTarget addLaunchTarget(String typeId, String id, String name) { + public ILaunchTarget addLaunchTarget(String typeId, String id) { initTargets(); Map type = targets.get(typeId); if (type == null) { @@ -170,11 +164,11 @@ public class LaunchTargetManager implements ILaunchTargetManager { targets.put(typeId, type); } - ILaunchTarget target = new LaunchTarget(typeId, id, name); + ILaunchTarget target = new LaunchTarget(typeId, id); type.put(id, target); - getTargetsPref().put(typeId, type.values().stream().map(t -> t.getId() + DELIMETER2 + t.getName()) - .collect(Collectors.joining(DELIMETER1))); + getTargetsPref().put(typeId, + type.values().stream().map(t -> t.getId()).collect(Collectors.joining(DELIMETER1))); for (ILaunchTargetListener listener : listeners) { listener.launchTargetAdded(target); @@ -188,13 +182,13 @@ public class LaunchTargetManager implements ILaunchTargetManager { initTargets(); Map type = targets.get(target.getTypeId()); if (type != null) { - type.remove(target.getName()); + type.remove(target.getId()); if (type.isEmpty()) { targets.remove(target.getTypeId()); getTargetsPref().remove(target.getTypeId()); } else { - getTargetsPref().put(target.getTypeId(), type.values().stream() - .map(t -> t.getId() + DELIMETER2 + t.getName()).collect(Collectors.joining(DELIMETER1))); + getTargetsPref().put(target.getTypeId(), + type.values().stream().map(t -> t.getId()).collect(Collectors.joining(DELIMETER1))); } for (ILaunchTargetListener listener : listeners) { @@ -215,7 +209,7 @@ public class LaunchTargetManager implements ILaunchTargetManager { Preferences prefs = getTargetsPref().node("configs"); //$NON-NLS-1$ String targetId = prefs.get(configuration.getName(), null); if (targetId != null) { - String[] parts = targetId.split(DELIMETER3); + String[] parts = targetId.split(DELIMETER2); return getLaunchTarget(parts[0], parts[1]); } return null; @@ -224,7 +218,7 @@ public class LaunchTargetManager implements ILaunchTargetManager { @Override public void setDefaultLaunchTarget(ILaunchConfiguration configuration, ILaunchTarget target) { Preferences prefs = getTargetsPref().node("configs"); //$NON-NLS-1$ - String targetId = String.join(DELIMETER3, target.getTypeId(), target.getId()); + String targetId = String.join(DELIMETER2, target.getTypeId(), target.getId()); prefs.put(configuration.getName(), targetId); try { prefs.flush(); diff --git a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LocalLaunchTargetProvider.java b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LocalLaunchTargetProvider.java index 701231b83f7..eb7c130e6fe 100644 --- a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LocalLaunchTargetProvider.java +++ b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LocalLaunchTargetProvider.java @@ -19,8 +19,7 @@ public class LocalLaunchTargetProvider implements ILaunchTargetProvider { public void init(ILaunchTargetManager targetManager) { if (targetManager.getLaunchTarget(ILaunchTargetManager.localLaunchTargetTypeId, Messages.LocalTarget_name) == null) { - targetManager.addLaunchTarget(ILaunchTargetManager.localLaunchTargetTypeId, Messages.LocalTarget_name, - Messages.LocalTarget_name); + targetManager.addLaunchTarget(ILaunchTargetManager.localLaunchTargetTypeId, Messages.LocalTarget_name); } } diff --git a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTarget.java b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTarget.java index 3c3215a49a4..1c9ad3173fa 100644 --- a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTarget.java +++ b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTarget.java @@ -18,7 +18,7 @@ import org.eclipse.launchbar.core.internal.target.LaunchTarget; * @noimplement not to be implemented by clients */ public interface ILaunchTarget extends IAdaptable { - public static final ILaunchTarget NULL_TARGET = new LaunchTarget("null", "null", "---"); + public static final ILaunchTarget NULL_TARGET = new LaunchTarget("null", "---"); //$NON-NLS-1$ //$NON-NLS-2$ /** * The id for the target. It is unique for each type. @@ -29,10 +29,14 @@ public interface ILaunchTarget extends IAdaptable { /** * The user consumable name of the target. - * + * + * @deprecated this will be the same as the id * @return name of the target */ - String getName(); + @Deprecated + default String getName() { + return getId(); + } /** * The type of the target. diff --git a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTargetManager.java b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTargetManager.java index db1510f6a27..68e90cbc7c5 100644 --- a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTargetManager.java +++ b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTargetManager.java @@ -67,25 +67,9 @@ public interface ILaunchTargetManager { * type id of the launch target * @param id * id for the target. - * @param name - * name of the launch target * @return the created launch target */ - ILaunchTarget addLaunchTarget(String typeId, String id, String name); - - /** - * Add a launch target with the given typeId and name. The name is also the - * id for the target. - * - * @param typeId - * type id of the launch target - * @param name - * name of the launch target - * @return the created launch target - */ - default ILaunchTarget addLaunchTarget(String typeId, String name) { - return addLaunchTarget(typeId, name, name); - } + ILaunchTarget addLaunchTarget(String typeId, String id); /** * Removes a launch target. diff --git a/bundles/org.eclipse.launchbar.remote.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.launchbar.remote.core/META-INF/MANIFEST.MF index 436092919fc..e24c43302b8 100644 --- a/bundles/org.eclipse.launchbar.remote.core/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.launchbar.remote.core/META-INF/MANIFEST.MF @@ -10,3 +10,4 @@ Require-Bundle: org.eclipse.ui, org.eclipse.remote.core;bundle-version="2.0.0" Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy +Export-Package: org.eclipse.launchbar.remote.core.internal;x-friends:="org.eclipse.launchbar.remote.ui" diff --git a/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/internal/RemoteConnectionListener.java b/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/internal/RemoteConnectionListener.java index 026b1725889..fe40f6e43c4 100644 --- a/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/internal/RemoteConnectionListener.java +++ b/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/internal/RemoteConnectionListener.java @@ -23,7 +23,7 @@ public class RemoteConnectionListener implements IRemoteConnectionChangeListener switch (event.getType()) { case RemoteConnectionChangeEvent.CONNECTION_ADDED: targetManager.addLaunchTarget(RemoteLaunchTargetProvider.TYPE_ID, - RemoteLaunchTargetProvider.getTargetId(connection), connection.getName()); + RemoteLaunchTargetProvider.getTargetId(connection)); break; case RemoteConnectionChangeEvent.CONNECTION_REMOVED: ILaunchTarget target = targetManager.getLaunchTarget(RemoteLaunchTargetProvider.TYPE_ID, diff --git a/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/internal/RemoteLaunchTargetProvider.java b/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/internal/RemoteLaunchTargetProvider.java index 1fee2b5576f..db18463e54f 100644 --- a/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/internal/RemoteLaunchTargetProvider.java +++ b/bundles/org.eclipse.launchbar.remote.core/src/org/eclipse/launchbar/remote/core/internal/RemoteLaunchTargetProvider.java @@ -17,8 +17,8 @@ import org.eclipse.remote.core.IRemoteServicesManager; public class RemoteLaunchTargetProvider implements ILaunchTargetProvider { - static final String TYPE_ID = "org.eclipse.launchbar.remote.core.launchTargetType"; //$NON-NLS-1$ - static final String DELIMITER = "|"; //$NON-NLS-1$ + public static final String TYPE_ID = "org.eclipse.launchbar.remote.core.launchTargetType"; //$NON-NLS-1$ + public static final String DELIMITER = "|"; //$NON-NLS-1$ private static final TargetStatus CLOSED = new TargetStatus(Code.ERROR, Messages.RemoteLaunchTargetProvider_Closed); @@ -39,7 +39,7 @@ public class RemoteLaunchTargetProvider implements ILaunchTargetProvider { for (IRemoteConnection connection : manager.getAllRemoteConnections()) { String id = getTargetId(connection); if (targetManager.getLaunchTarget(TYPE_ID, id) == null) { - targetManager.addLaunchTarget(TYPE_ID, id, connection.getName()); + targetManager.addLaunchTarget(TYPE_ID, id); } } } diff --git a/bundles/org.eclipse.launchbar.remote.ui/.classpath b/bundles/org.eclipse.launchbar.remote.ui/.classpath new file mode 100644 index 00000000000..eca7bdba8f0 --- /dev/null +++ b/bundles/org.eclipse.launchbar.remote.ui/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/bundles/org.eclipse.launchbar.remote.ui/.project b/bundles/org.eclipse.launchbar.remote.ui/.project new file mode 100644 index 00000000000..ec6ff73a3ae --- /dev/null +++ b/bundles/org.eclipse.launchbar.remote.ui/.project @@ -0,0 +1,28 @@ + + + org.eclipse.launchbar.remote.ui + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/bundles/org.eclipse.launchbar.remote.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.launchbar.remote.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000000..0c68a61dca8 --- /dev/null +++ b/bundles/org.eclipse.launchbar.remote.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/bundles/org.eclipse.launchbar.remote.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.launchbar.remote.ui/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..0bc662f06a8 --- /dev/null +++ b/bundles/org.eclipse.launchbar.remote.ui/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Remote Launch Target UI +Bundle-SymbolicName: org.eclipse.launchbar.remote.ui;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: org.eclipse.launchbar.remote.ui.internal.Activator +Bundle-Vendor: Eclipse CDT +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.remote.core;bundle-version="2.0.0", + org.eclipse.remote.ui;bundle-version="2.0.0", + org.eclipse.launchbar.core;bundle-version="2.0.0", + org.eclipse.launchbar.ui;bundle-version="2.0.0", + org.eclipse.launchbar.remote.core;bundle-version="1.0.0" +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-ActivationPolicy: lazy diff --git a/bundles/org.eclipse.launchbar.remote.ui/build.properties b/bundles/org.eclipse.launchbar.remote.ui/build.properties new file mode 100644 index 00000000000..e9863e281ea --- /dev/null +++ b/bundles/org.eclipse.launchbar.remote.ui/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml diff --git a/bundles/org.eclipse.launchbar.remote.ui/plugin.xml b/bundles/org.eclipse.launchbar.remote.ui/plugin.xml new file mode 100644 index 00000000000..21bc68e520e --- /dev/null +++ b/bundles/org.eclipse.launchbar.remote.ui/plugin.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/bundles/org.eclipse.launchbar.remote.ui/src/org/eclipse/launchbar/remote/ui/internal/Activator.java b/bundles/org.eclipse.launchbar.remote.ui/src/org/eclipse/launchbar/remote/ui/internal/Activator.java new file mode 100644 index 00000000000..5db112b94ee --- /dev/null +++ b/bundles/org.eclipse.launchbar.remote.ui/src/org/eclipse/launchbar/remote/ui/internal/Activator.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2015 QNX Software Systems 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 + *******************************************************************************/ +package org.eclipse.launchbar.remote.ui.internal; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.eclipse.launchbar.remote.ui"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + @Override + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + public static Activator getDefault() { + return plugin; + } + + public static T getService(Class service) { + BundleContext context = plugin.getBundle().getBundleContext(); + ServiceReference ref = context.getServiceReference(service); + return ref != null ? context.getService(ref) : null; + } + +} diff --git a/bundles/org.eclipse.launchbar.remote.ui/src/org/eclipse/launchbar/remote/ui/internal/RemoteLaunchTargetLabelProvider.java b/bundles/org.eclipse.launchbar.remote.ui/src/org/eclipse/launchbar/remote/ui/internal/RemoteLaunchTargetLabelProvider.java new file mode 100644 index 00000000000..776b98a9028 --- /dev/null +++ b/bundles/org.eclipse.launchbar.remote.ui/src/org/eclipse/launchbar/remote/ui/internal/RemoteLaunchTargetLabelProvider.java @@ -0,0 +1,55 @@ +/******************************************************************************* + * Copyright (c) 2015 QNX Software Systems 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 + *******************************************************************************/ +package org.eclipse.launchbar.remote.ui.internal; + +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.launchbar.core.target.ILaunchTarget; +import org.eclipse.launchbar.remote.core.internal.RemoteLaunchTargetProvider; +import org.eclipse.remote.core.IRemoteConnection; +import org.eclipse.remote.ui.IRemoteUIConnectionService; +import org.eclipse.swt.graphics.Image; + +public class RemoteLaunchTargetLabelProvider extends LabelProvider { + + @Override + public String getText(Object element) { + IRemoteConnection connection = getConnection(element); + if (connection != null) { + IRemoteUIConnectionService uiService = connection.getConnectionType() + .getService(IRemoteUIConnectionService.class); + if (uiService != null) { + return uiService.getLabelProvider().getText(connection); + } + } + return super.getText(element); + } + + @Override + public Image getImage(Object element) { + IRemoteConnection connection = getConnection(element); + if (connection != null) { + IRemoteUIConnectionService uiService = connection.getConnectionType() + .getService(IRemoteUIConnectionService.class); + if (uiService != null) { + return uiService.getLabelProvider().getImage(connection); + } + } + return super.getImage(element); + } + + private IRemoteConnection getConnection(Object element) { + if (element instanceof ILaunchTarget) { + ILaunchTarget target = (ILaunchTarget) element; + if (target.getTypeId().equals(RemoteLaunchTargetProvider.TYPE_ID)) { + IRemoteConnection connection = target.getAdapter(IRemoteConnection.class); + return connection; + } + } + return null; + } +}