| /*************************************************************************************************** |
| * Copyright (c) 2005 Eteration A.S. and Gorkem Ercan. 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: Gorkem Ercan - initial API and implementation |
| * |
| **************************************************************************************************/ |
| package org.eclipse.jst.server.generic.ui.internal; |
| |
| import java.util.Map; |
| |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.core.runtime.NullProgressMonitor; |
| import org.eclipse.jst.server.generic.core.internal.GenericServer; |
| import org.eclipse.jst.server.generic.core.internal.GenericServerRuntime; |
| import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime; |
| import org.eclipse.osgi.util.NLS; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.wst.server.core.IRuntime; |
| import org.eclipse.wst.server.core.IServerWorkingCopy; |
| import org.eclipse.wst.server.core.TaskModel; |
| import org.eclipse.wst.server.ui.wizard.IWizardHandle; |
| |
| /** |
| * |
| * |
| * @author Gorkem Ercan |
| */ |
| public class GenericServerWizardFragment extends |
| ServerDefinitionTypeAwareWizardFragment { |
| private GenericServerCompositeDecorator[] fDecorators; |
| |
| /** |
| * |
| */ |
| public boolean isComplete() { |
| |
| ServerRuntime serverRuntime = getServerTypeDefinitionFor( getServer() ); |
| if( serverRuntime == null ) |
| return false; |
| |
| IServerWorkingCopy server = getServer(); |
| GenericServer dl = (GenericServer) server.loadAdapter( |
| GenericServer.class, null ); |
| |
| IStatus status = dl.validate(); |
| return (status != null && status.isOK()); |
| |
| } |
| |
| public void createContent( Composite parent, IWizardHandle handle ) { |
| IServerWorkingCopy server = getServer(); |
| GenericServer dl = (GenericServer) server.loadAdapter( |
| GenericServer.class, null ); |
| ServerRuntime definition = getServerTypeDefinitionFor( server ); |
| fDecorators = new GenericServerCompositeDecorator[1]; |
| fDecorators[0] = new ServerTypeDefinitionServerDecorator( definition, |
| null, getWizard(), dl ); |
| new GenericServerComposite( parent, fDecorators ); |
| |
| } |
| |
| /** |
| * @param server |
| * @return |
| */ |
| private ServerRuntime getServerTypeDefinitionFor( IServerWorkingCopy server ) { |
| GenericServerRuntime runtime = (GenericServerRuntime) server |
| .getRuntime().getAdapter( GenericServerRuntime.class ); |
| if( runtime == null ) |
| { |
| IRuntime wc = (IRuntime) getTaskModel().getObject( |
| TaskModel.TASK_RUNTIME ); |
| runtime = (GenericServerRuntime) wc |
| .getAdapter( GenericServerRuntime.class ); |
| if( runtime == null ) |
| runtime = (GenericServerRuntime) wc.loadAdapter( |
| GenericServerRuntime.class, new NullProgressMonitor() ); |
| } |
| String serverTyepId = server.getServerType().getId(); |
| String runtimeTypeId = runtime.getRuntime().getRuntimeType().getId(); |
| if( runtimeTypeId == null ) |
| { |
| return null; |
| } |
| Map runtimeProperties = runtime.getServerInstanceProperties(); |
| ServerRuntime definition = getServerTypeDefinition( serverTyepId, |
| runtimeTypeId, runtimeProperties ); |
| return definition; |
| } |
| |
| /** |
| * @return |
| */ |
| private IServerWorkingCopy getServer() { |
| IServerWorkingCopy server = (IServerWorkingCopy) getTaskModel() |
| .getObject( TaskModel.TASK_SERVER ); |
| return server; |
| } |
| |
| public void enter() { |
| if(fDecorators == null ){ |
| return; |
| } |
| for( int i = 0; i < fDecorators.length; i++ ) |
| { |
| if( fDecorators[i].validate() )//failed do not continue |
| return; |
| } |
| } |
| |
| public void exit() { |
| if(fDecorators == null ){ |
| return; |
| } |
| // validate needed to save the latest values. |
| for( int i = 0; i < fDecorators.length; i++ ) |
| { |
| if( fDecorators[i].validate() )//failed do not continue |
| return; |
| } |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#description() |
| */ |
| public String description() { |
| String sName = getServerName(); |
| if( sName == null || sName.length() < 1 ) |
| sName = "Generic"; //$NON-NLS-1$ |
| return NLS.bind( |
| GenericServerUIMessages.serverWizardDescription, sName ); |
| } |
| |
| private String getServerName() { |
| if( getServer() != null && getServer().getRuntime() != null ) |
| return getServer().getRuntime().getRuntimeType().getName(); |
| return null; |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#title() |
| */ |
| public String title() { |
| String sName = getServerName(); |
| if( sName == null || sName.length() < 1 ) |
| sName = "Generic"; //$NON-NLS-1$ |
| return NLS.bind( |
| GenericServerUIMessages.serverWizardTitle, sName ); |
| } |
| } |