// Path: org.spotter.eclipse.ui/src/org/spotter/eclipse/ui/dialogs/ServiceClientSettingsDialog.java
// public class ServiceClientSettingsDialog extends TitleAreaDialog implements IConnectionChangedListener {
// 
// 	private final ServiceClientWrapper client;
// 	private ConnectionTestComposite connTestComposite;
// 
// 	/**
// 	 * Creates a new dialog for the given project.
// 	 * 
// 	 * @param parentShell
// 	 *            The underlying shell for this dialog
// 	 * @param projectName
// 	 *            The name of the project whose settings will be edited
// 	 */
// 	public ServiceClientSettingsDialog(Shell parentShell, String projectName) {
// 		super(parentShell);
// 		this.client = Activator.getDefault().getClient(projectName);
// 		setHelpAvailable(false);
// 	}
// 
// 	/**
// 	 * Create contents of the dialog.
// 	 * 
// 	 * @param parent
// 	 *            The parent composite the content is placed in
// 	 * @return a {@link Control} instance
// 	 */
// 	@Override
// 	protected Control createDialogArea(Composite parent) {
// 		setTitle(ConnectionWizardPage.TITLE);
// 		setMessage(ConnectionWizardPage.DESCRIPTION);
// 
// 		Composite area = (Composite) super.createDialogArea(parent);
// 		Composite container = new Composite(area, SWT.NONE);
// 		container.setLayoutData(new GridData(GridData.FILL_BOTH));
// 		container.setLayout(new FillLayout());
// 
// 		connTestComposite = new ConnectionTestComposite(container, false, client);
// 		connTestComposite.addConnectionChangedListener(this);
// 
// 		return area;
// 	}
// 
// 	/**
// 	 * Create contents of the button bar.
// 	 * 
// 	 * @param parent
// 	 *            The parent composite the content is placed in
// 	 */
// 	@Override
// 	protected void createButtonsForButtonBar(Composite parent) {
// 		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
// 		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
// 	}
// 
// 	@Override
// 	protected void okPressed() {
// 		String host = connTestComposite.getHost();
// 		String port = connTestComposite.getPort();
// 		if (!client.saveServiceClientSettings(host, port)) {
// 			return;
// 		}
// 		super.okPressed();
// 	}
// 
// 	@Override
// 	public void connectionChanged(boolean connectionOk) {
// 		String errorMsg = connTestComposite.getErrorMessage();
// 		setErrorMessage(errorMsg);
// 		Button okButton = getButton(IDialogConstants.OK_ID);
// 		if (okButton != null) {
// 			okButton.setEnabled(errorMsg == null);
// 		}
// 	}
// 
// }


import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import org.spotter.eclipse.ui.Activator;
import org.spotter.eclipse.ui.dialogs.ServiceClientSettingsDialog;
/**
 * Copyright 2014 SAP AG
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.spotter.eclipse.ui.handlers;


/**
 * A handler for the service client settings command which opens the service
 * client settings dialog.
 * 
 * @author Denis Knoepfle
 * 
 */
public class ServiceClientSettingsHandler extends AbstractHandler implements ISelectionChangedListener {

	/**
	 * The id of the corresponding service client settings command.
	 */
	public static final String CLIENT_SETTINGS_COMMAND_ID = "org.spotter.eclipse.ui.commands.serviceClientSettings";

	private boolean isEnabled;

	/**
	 * Constructor.
	 */
	public ServiceClientSettingsHandler() {
		super();
		selectionChanged(null);
		Activator.getDefault().addProjectSelectionListener(this);
	}

	@Override
	public Object execute(ExecutionEvent event) throws ExecutionException {
		Activator activator = Activator.getDefault();
		if (activator.getSelectedProjects().size() != 1) {
			return null;
		}
		String projectName = activator.getSelectedProjects().iterator().next().getName();

		Shell shell = PlatformUI.getWorkbench().getDisplay().getActiveShell();
// Path: org.spotter.eclipse.ui/src/org/spotter/eclipse/ui/dialogs/ServiceClientSettingsDialog.java
// public class ServiceClientSettingsDialog extends TitleAreaDialog implements IConnectionChangedListener {
// 
// 	private final ServiceClientWrapper client;
// 	private ConnectionTestComposite connTestComposite;
// 
// 	/**
// 	 * Creates a new dialog for the given project.
// 	 * 
// 	 * @param parentShell
// 	 *            The underlying shell for this dialog
// 	 * @param projectName
// 	 *            The name of the project whose settings will be edited
// 	 */
// 	public ServiceClientSettingsDialog(Shell parentShell, String projectName) {
// 		super(parentShell);
// 		this.client = Activator.getDefault().getClient(projectName);
// 		setHelpAvailable(false);
// 	}
// 
// 	/**
// 	 * Create contents of the dialog.
// 	 * 
// 	 * @param parent
// 	 *            The parent composite the content is placed in
// 	 * @return a {@link Control} instance
// 	 */
// 	@Override
// 	protected Control createDialogArea(Composite parent) {
// 		setTitle(ConnectionWizardPage.TITLE);
// 		setMessage(ConnectionWizardPage.DESCRIPTION);
// 
// 		Composite area = (Composite) super.createDialogArea(parent);
// 		Composite container = new Composite(area, SWT.NONE);
// 		container.setLayoutData(new GridData(GridData.FILL_BOTH));
// 		container.setLayout(new FillLayout());
// 
// 		connTestComposite = new ConnectionTestComposite(container, false, client);
// 		connTestComposite.addConnectionChangedListener(this);
// 
// 		return area;
// 	}
// 
// 	/**
// 	 * Create contents of the button bar.
// 	 * 
// 	 * @param parent
// 	 *            The parent composite the content is placed in
// 	 */
// 	@Override
// 	protected void createButtonsForButtonBar(Composite parent) {
// 		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
// 		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
// 	}
// 
// 	@Override
// 	protected void okPressed() {
// 		String host = connTestComposite.getHost();
// 		String port = connTestComposite.getPort();
// 		if (!client.saveServiceClientSettings(host, port)) {
// 			return;
// 		}
// 		super.okPressed();
// 	}
// 
// 	@Override
// 	public void connectionChanged(boolean connectionOk) {
// 		String errorMsg = connTestComposite.getErrorMessage();
// 		setErrorMessage(errorMsg);
// 		Button okButton = getButton(IDialogConstants.OK_ID);
// 		if (okButton != null) {
// 			okButton.setEnabled(errorMsg == null);
// 		}
// 	}
// 
// }


// Path: org.spotter.eclipse.ui/src/org/spotter/eclipse/ui/handlers/ServiceClientSettingsHandler.java
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import org.spotter.eclipse.ui.Activator;
import org.spotter.eclipse.ui.dialogs.ServiceClientSettingsDialog;

/**
 * Copyright 2014 SAP AG
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.spotter.eclipse.ui.handlers;


/**
 * A handler for the service client settings command which opens the service
 * client settings dialog.
 * 
 * @author Denis Knoepfle
 * 
 */
public class ServiceClientSettingsHandler extends AbstractHandler implements ISelectionChangedListener {

	/**
	 * The id of the corresponding service client settings command.
	 */
	public static final String CLIENT_SETTINGS_COMMAND_ID = "org.spotter.eclipse.ui.commands.serviceClientSettings";

	private boolean isEnabled;

	/**
	 * Constructor.
	 */
	public ServiceClientSettingsHandler() {
		super();
		selectionChanged(null);
		Activator.getDefault().addProjectSelectionListener(this);
	}

	@Override
	public Object execute(ExecutionEvent event) throws ExecutionException {
		Activator activator = Activator.getDefault();
		if (activator.getSelectedProjects().size() != 1) {
			return null;
		}
		String projectName = activator.getSelectedProjects().iterator().next().getName();

		Shell shell = PlatformUI.getWorkbench().getDisplay().getActiveShell();
		ServiceClientSettingsDialog dialog = new ServiceClientSettingsDialog(shell, projectName);