/******************************************************************************* * 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.templates.preferences; import java.util.Properties; import org.jboss.tools.common.meta.action.XActionInvoker; import org.jboss.tools.common.meta.action.impl.SpecialWizardSupport; import org.jboss.tools.common.model.*; public class AddInterfaceSupport extends SpecialWizardSupport { public static String runAdd(XModel model) { return runAdd(model, "CreateActions.AddInterface", "interface"); //$NON-NLS-1$ //$NON-NLS-2$ } public static String runAddClass(XModel model) { return runAdd(model, "CreateActions.AddClass", "class"); //$NON-NLS-1$ //$NON-NLS-2$ } private static String runAdd(XModel model, String action, String property) { String entity = "TemplateClass"; //$NON-NLS-1$ Properties p = new Properties(); XModelObject o = model.createModelObject(entity, p); XActionInvoker.invoke(action, o, p); return p.getProperty(property); } public static String runEdit(XModel model, String current) { String entity = "TemplateClass"; //$NON-NLS-1$ Properties p = new Properties(); if(current != null) p.setProperty("interface", current); //$NON-NLS-1$ XModelObject o = model.createModelObject(entity, p); XActionInvoker.invoke("EditActions.EditInterface", o, p); //$NON-NLS-1$ return p.getProperty("interface"); //$NON-NLS-1$ } String property; public void reset() { property = getEntityData()[0].getAttributeData()[0].getAttribute().getName(); if(property == null) property = "interface"; //$NON-NLS-1$ String current = getProperties().getProperty(property); if(current != null) setAttributeValue(0, property, current); } public void action(String name) throws XModelException { if(OK.equals(name) || FINISH.equals(name)) { getProperties().setProperty(property, getAttributeValue(0, property)); setFinished(true); } else if(CANCEL.equals(name)) { getProperties().remove(property); setFinished(true); } } }