/******************************************************************************* * Copyright (c) 2014 Zend Technologies Ltd. * 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: * Zend Technologies Ltd. - initial API and implementation *******************************************************************************/ package org.zend.php.server.internal.ui.actions; import java.util.List; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.php.internal.server.core.Server; import org.eclipse.php.internal.server.core.manager.ServersManager; import org.zend.php.server.internal.ui.Messages; import org.zend.php.server.ui.ServersUI; /** * Action responsible for setting selected server as a default workspace PHP * server. * * @author Wojciech Galanciak, 2014 * */ @SuppressWarnings("restriction") public class SetDefaultServerAction extends AbstractServerAction implements ISelectionChangedListener { private boolean isEnabled; public SetDefaultServerAction(ISelectionProvider provider) { super(Messages.SetDefaultServerAction_Name, ServersUI .getImageDescriptor(ServersUI.SET_DEFAULT_ICON), provider); provider.addSelectionChangedListener(this); } @Override public void run() { List<Server> toEdit = getSelection(); if (toEdit.size() == 1) { ServersManager.setDefaultServer(null, toEdit.get(0)); ServersManager.save(); } } @Override public boolean isEnabled() { return isEnabled; } @Override public void selectionChanged(SelectionChangedEvent event) { ISelection selection = event.getSelection(); IStructuredSelection selectedServers = (IStructuredSelection) selection; boolean newVal = selectedServers.size() == 1 && !ServersManager.getDefaultServer(null).equals( selectedServers.getFirstElement()); if (isEnabled != newVal) { isEnabled = newVal; firePropertyChange(ENABLED, !isEnabled, isEnabled); } } }