/******************************************************************************* * Copyright (c) 2014 Zend Technologies. * All rights reserved. This program and the accompanying materials * are the copyright of Zend Technologies and is protected under * copyright laws of the United States. * You must not copy, adapt or redistribute this document for * any use. * *******************************************************************************/ package org.zend.php.zendserver.deployment.ui.zendserver; import java.text.MessageFormat; import org.eclipse.jface.dialogs.IMessageProvider; import org.eclipse.php.internal.server.core.Server; import org.eclipse.php.internal.ui.wizards.IControlHandler; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.zend.php.server.ui.ServersUI; import org.zend.php.server.ui.fragments.AbstractCompositeFragment; import org.zend.php.zendserver.deployment.core.targets.ZendServerManager; import org.zend.sdklib.manager.DetectionException; /** * @author Wojciech Galanciak, 2014 * */ @SuppressWarnings("restriction") public class LocalZendServerCompositeFragment extends AbstractCompositeFragment { public static String ID = "org.zend.php.zendserver.deployment.ui.zendserver.LocalZendServerCompositeFragment"; //$NON-NLS-1$ private Text serverNameText; private String name; public LocalZendServerCompositeFragment(Composite parent, IControlHandler handler, boolean isForEditing) { super(parent, handler, isForEditing, Messages.LocalZendServerCompositeFragment_Name, Messages.LocalZendServerCompositeFragment_Name, Messages.LocalZendServerCompositeFragment_Desc); setImageDescriptor(ServersUI.getImageDescriptor(ServersUI.ZEND_SERVER_WIZ)); handler.setImageDescriptor(getImageDescriptor()); } /** * Saves the page's state */ public void saveValues() { Server server = getServer(); if (server != null) { getServer().setName(name); } } public boolean performOk() { saveValues(); return true; } public String getId() { return ID; } public void validate() { if (name != null) { if (name.trim().isEmpty()) { setMessage( Messages.LocalZendServerCompositeFragment_EmptyNameError, IMessageProvider.ERROR); return; } if (isDuplicateName(name)) { setMessage( Messages.LocalZendServerCompositeFragment_NameConflictError, IMessageProvider.ERROR); return; } Server tempServer = new Server(); try { tempServer = ZendServerManager.getInstance().getLocalZendServer(); } catch (DetectionException e) { setMessage( Messages.LocalZendServerCompositeFragment_CannotDetectError, IMessageProvider.ERROR); return; } Server conflictingServer = getConflictingServer(tempServer); if (conflictingServer != null) { setMessage( MessageFormat.format( Messages.LocalZendServerCompositeFragment_BaseUrlConflictError, conflictingServer.getName()), IMessageProvider.ERROR); return; } } setMessage(getDescription(), IMessageProvider.NONE); } @Override protected void createContents(Composite parent) { Label label = new Label(parent, SWT.NONE); label.setText(Messages.LocalZendServerCompositeFragment_NameLabel); serverNameText = new Text(parent, SWT.BORDER); serverNameText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); serverNameText .setToolTipText(Messages.LocalZendServerCompositeFragment_NameTooltip); serverNameText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { updateData(); validate(); } }); serverNameText.forceFocus(); } @Override protected void init() { Server server = getServer(); if (server != null) { serverNameText.setText(server.getName()); } } private void updateData() { name = serverNameText.getText(); } }