/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.model.ui.wizards; import java.util.Properties; import org.jboss.tools.common.model.ui.wizards.special.DefaultSpecialWizard; import org.jboss.tools.common.meta.action.*; import org.jboss.tools.common.meta.action.impl.SpecialWizardSupport; import org.jboss.tools.common.model.XModelException; import org.jboss.tools.common.model.XModelObject; public class OneStepWizard implements SpecialWizard { Properties p; XAction action; XModelObject modelObject; public OneStepWizard() {} public void setObject(Object object) { p = (Properties)object; action = (XAction)p.get("action"); //$NON-NLS-1$ modelObject = (XModelObject)p.get("object"); //$NON-NLS-1$ } public int execute() { SpecialWizardSupport support = new SpecialWizardSupportOneImpl(); support.setActionData(action, action.getEntityData(modelObject), modelObject, p); DefaultSpecialWizard w = new DefaultSpecialWizard(); w.setObject(new Object[]{support}); w.execute(); return 0; } } class SpecialWizardSupportOneImpl extends SpecialWizardSupport { public String[] getActionNames(int stepId) { return new String[]{FINISH, CANCEL, HELP}; } public void action(String name) throws XModelException { if(CANCEL.equals(name)) { setFinished(true); } else if(FINISH.equals(name)) { action.executeHandler(getTarget(), p); setFinished(true); } } public String getHelpKey() { if(action == null) return null; String key = action.getProperty("key"); //$NON-NLS-1$ if(key != null && key.length() > 0) return key; return target.getModelEntity().getName() + "_" + action.getName().replace(' ', '_'); //$NON-NLS-1$ } }