/******************************************************************************* * Copyright (c) 2007 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.seam.ui.wizard; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.jface.window.Window; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.dialogs.ListDialog; import org.jboss.tools.common.ui.widget.editor.ButtonFieldEditor; import org.jboss.tools.seam.core.SeamCoreMessages; public class SelectSeamProjectAction extends ButtonFieldEditor.ButtonPressedAction { private boolean allowAllProjects; /** * @param allowAllProjects If "false" show only projects with seam nature. */ public SelectSeamProjectAction(boolean allowAllProjects) { super(SeamCoreMessages.SELECT_SEAM_PROJECT_ACTION_BROWSE); this.allowAllProjects = allowAllProjects; } /** * */ public SelectSeamProjectAction() { this(false); } @Override public void run() { ListDialog dialog = new SeamProjectSelectionDialog( Display.getCurrent().getActiveShell(), allowAllProjects); if(!"".equals(this.getFieldEditor().getValueAsString())) //$NON-NLS-1$ dialog.setInitialSelections(new Object[] { ResourcesPlugin.getWorkspace().getRoot().getProject(this.getFieldEditor().getValueAsString())}); if (dialog.open() == Window.CANCEL) { return; } getFieldEditor().setValue(((IProject)dialog.getResult()[0]).getName()); } }